WPF设计器-用户定义的设置
本文关键字:定义 设置 用户 WPF | 更新日期: 2023-09-27 18:08:46
是否可以为wpf设计器定义一些设置?我想为用户提供两种显示模式:"带边框绘制所有内容"answers"运行时视图"。然后,我的自定义组件应该能够检查设置并相应地绘制它们自己。
我有一个建议,你为什么不添加一个DependencyProperty你的自定义组件,它将是"DisplayMode",根据这一点,开发人员放入属性(来自Xaml或C#(,自定义组件将以你想要的方式呈现?
public static readonly DependencyProperty DisplayModeProperty = DependencyProperty.Register(
"DisplayMode", typeof(int), typeof(DisplayModeProperty), new PropertyMetadata(1, OnModeChanged));
public bool DisplayMode
{
private get { return (bool)GetValue(DisplayModeProperty); }
set { SetValue(DisplayModeProperty, value); }
}
private static void OnModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((MyCustomComponent)d).OnModeChanged(e);
}
private void OnModeChanged(DependencyPropertyChangedEventArgs e)
{
int mode = Convert.ToInt32(e.NewValue);
if(mode == 1)
{
//... Render for the Mode 1
}
else
{
//... Render for the Mode 2
}
}
在Xaml:中
<cust:MyCustomCompoenent DisplayMode="1"/>
我认为战略模式可以在这里为您提供帮助。定义一个具有公共首选项的抽象基类,并定义从中派生的多个具体类。每个具体类都会定义一些策略(也可以override
一些(,例如边界或无边界、颜色、主题等,您可以在视图中使用这些策略。如果使用基类引用访问首选项,则可以在运行时更改首选项,基类引用的运行时类型将是具体类之一。