WPF 寄存器依赖于另一个控件
本文关键字:控件 另一个 依赖于 寄存器 WPF | 更新日期: 2023-09-27 18:31:23
我有一个画布,我想创建一个依赖属性并将其设置为滚动视图,这是画布的父控件。我收到依赖错误
抛出的异常:PresentationFramework中的"System.Windows.Markup.XamlParseException".dll
MainWindow.xaml
<Grid>
<ScrollViewer Name="NexusScrollViewer"
Background="Transparent"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<nexus:NexusCanvas x:Name="MyDesignerCanvas"
MinHeight="800"
MinWidth="800"
AllowDrop="True"
ScrollViewer="{Binding ElementName=NexusScrollViewer}"
Background="#FF252629">
<Ellipse Canvas.Left="50" Canvas.Top="200" Fill="Red" Width="100" Height="100"/>
<Ellipse Canvas.Left="200" Canvas.Top="10" Fill="LightBlue" Width="100" Height="100"/>
</nexus:NexusCanvas>
</ScrollViewer>
</Grid>
NexusCanvas.cs
public class NexusCanvas : Canvas
{
private Point? dragStartPoint = null;
// attempt to combine scrollview and canvas into one
public ScrollViewer ScrollViewer
{
get { return (ScrollViewer)GetValue(ScrollViewerProperty); }
set { SetValue(ScrollViewerProperty, value); }
}
public static readonly DependencyProperty ScrollViewerProperty =
DependencyProperty.Register("ScrollViewer", typeof(ScrollViewer), typeof(ScrollViewer));
}
当我在 NexusCanvas 中创建控件时,我最好只找到画布的父级.cs,如果是这样,我将如何做到这一点?
在
第三个参数的typeof
中使用NexusCanvas
。
public class NexusCanvas : Canvas
{
private Point? dragStartPoint = null;
// attempt to combine scrollview and canvas into one
public ScrollViewer ScrollViewer
{
get { return (ScrollViewer)GetValue(ScrollViewerProperty); }
set { SetValue(ScrollViewerProperty, value); }
}
public static readonly DependencyProperty ScrollViewerProperty =
DependencyProperty.Register("ScrollViewer", typeof(ScrollViewer), typeof(NexusCanvas));
}