当实例化的UserControl作为多个父类控件的Content内容时,如果不清除他与前一个父控件的关系,则会报此类错误,解决办法是,再重新作为新的父控件的Content之前,清除UserControl的父类绑定即可,下面是一个例子中第8行到第12行的代码为清除绑定:
public void InsertExecuted()
if (this.DetailView != null)
Window window = new Window();
window.DataContext = new MasterDetailDataModel();
UserControl uc = (UserControl)this.DetailView;
DependencyObject parent = uc.Parent;
if (parent != null)
parent.SetValue(ContentPresenter.ContentProperty, null);
window.Content = uc;
window.ShowDialog();
当实例化的UserControl作为多个父类控件的Content内容时,如果不清除他与前一个父控件的关系,则会报此类错误,解决办法是,再重新作为新的父控件的Content之前,清除UserControl的父类绑定即可,下面是一个例子中第8行到第12行的代码为清除绑定:
<Window x:Class="
Wpf
Application1.Window3" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Wind...
UserControl control = obj1 as UserControl;
Grid riid = control.Content as Grid;
DependencyObject parent = riid.Parent;
if (parent !
HorizontalAlignment="" 左右对齐
VerticalAlignment="" 上下对齐
Margin=""
元素
与周围的空间(Left,Top,Right,Down)
MinWidth=""
MaxWidth="" 最大最小宽度
Border 控件
BorderThickness="" 边框的宽度
Paddingg="" 与内部内容的距离
CornerRadius="" 边框的圆角值
WrapPanel面板
DockPanel面板
DockPanel.Dock=""
嵌套布局容器
<DockPanel>
<StackPanel DockPanel.Dock="Bottom" Name="stackPanel1" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Content="OK" Margin="10,10,2,10" Paddingg="3" />
<Button Content="Cancel" Margin="2,10,10,10" Paddingg="3" />
</StackPanel>
<TextBox Name="txtBox1" DockPanel.Dock="Top">This is a test.</TextBox>
</DockPanel>
支持.NET Framework 4.5+和.NET Core 3(3.0和3.1)
与MVVM一起使用:拖放的
逻辑
可以放在ViewModel中。 无需在代码背后放置任何代码,而是将附加的属性用于绑定到ViewModel中的拖动处理程序/放置处理程序。
适用于多种选择。
可以在同一控件内或控件之间拖动数据以重新排序。
与ListBox , ListView , TreeView , DataGrid和任何其他ItemsControl 。
可以将项目插入,移动或复制到相同控件的集合或另一
发生了预料之外的错误: System.ArgumentException:
指定
的 Visual
已经
是另一个 Visual 的子级或者
已经
是 CompositionTarget 的根。报错原因未知
解决
方案
报错原因未知
解决
方案
清空缓存,重新启动。
要使
WPF
中的Arc
元素
的四个角是圆角,可以使用StrokeStartLineCap和StrokeEndLineCap属性。这些属性控制线的起点和终点的外观,可以设置为Round值。
以下是一个示例代码片段,可以将Arc
元素
的四个角设置为圆角:
<Path Stroke="Black" StrokeThickness="2">
<Path.Data>
<PathGeometry>
<PathFigure StartPoint="50,50">
<ArcSegment Point="150,150" Size="100,50" SweepDirection="Clockwise"
IsLargeArc="True" SweepDirection="Clockwise"
StrokeStartLineCap="Round" StrokeEndLineCap="Round"/>
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
在上面的代码中,我们通过将ArcSegment
元素
的StrokeStartLineCap和StrokeEndLineCap属性设置为Round来设置圆角。注意,这些属性的值必须设置为相同的值,才能使四个角都是圆角。