WPF设计器-用户定义的设置

本文关键字:定义 设置 用户 WPF | 更新日期: 2023-09-27 18:08:46

是否可以为wpf设计器定义一些设置?我想为用户提供两种显示模式:"带边框绘制所有内容"answers"运行时视图"。然后,我的自定义组件应该能够检查设置并相应地绘制它们自己。

WPF设计器-用户定义的设置

我有一个建议,你为什么不添加一个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一些(,例如边界或无边界、颜色、主题等,您可以在视图中使用这些策略。如果使用基类引用访问首选项,则可以在运行时更改首选项,基类引用的运行时类型将是具体类之一。