是否可以为wpf设计器定义一些设置? 我想为用户提供2种显示模式:“绘制带边框的所有内容”和“运行时视图”。 然后,我的自定义组件应该能够检查设置并相应地绘制自己。
答案 0 :(得分:1)
我有一个建议,为什么不添加一个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"/>
答案 1 :(得分:0)
我认为Strategy Pattern可以帮到你。使用公共首选项定义一个 abstract 基类,并定义从中派生的多个具体类。每个具体类都将定义一些策略(也可以override
一些),例如边框或无边框,颜色,主题等,您可以在视图中使用它们。如果使用基类引用访问首选项,则可以在运行时更改首选项,基类引用的运行时类型将是具体类之一。