gpt4 book ai didi

c# - Silverlight - 在用户控制范围内公开 Canvas

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:10 25 4
gpt4 key购买 nike

给定一个内部有 Canvas 的自定义用户控件。

<Grid>
<Border BorderBrush="Black" BorderThickness="3">
<Canvas x:Name="CanvasDropArea" Background="#FFF7BDBD"/>
</Border>
</Grid>

有没有办法公开 Canvas 以允许将其他控件附加到上述用户控件中?

<CustomControlWithCanvas>
<Canvas>
<!--other user control-->
<Canvas>
</CustomControlWithCanvas>

我曾尝试将其作为属性公开,但失败了,因为它被视为普通属性,而不是允许附加 UIElement 的 Collection。但是,通过检索 Canvas 并手动添加它,我能够使用隐藏代码将控件附加到元素上。
那么正确的暴露 Canvas 的方式应该是怎样的呢?允许在设计时更改它,并保留 Canvas TOP 和左依赖属性。

最佳答案

试试这个 - 将您的控件类型从 UserControl 更改为 ContentControl,放入您的 Canvas 中并以某种方式将 ContentPresenter 的 Content 属性绑定(bind)到您的控件的 Content 属性 - 也许通过命名您的控件并使用 .

以更标准的方式 - 您可以将其实现为模板化/自定义控件而不是 UserControl,将模板放在 Themes/Generic.xaml 而不是 MyControl.xaml 中,在构造函数中定义 DefaultStyleKey,定义 TemplateParts 等。

关于c# - Silverlight - 在用户控制范围内公开 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com