基于自定义DP在用户控件上设置特定样式

时间:2014-09-05 02:57:52

标签: c# wpf controls dependency-properties

这是我能提出的问题陈述和部分解决方案。需要帮助尝试将其关闭到最终的优雅解决方案。

我有一个用户控件,它有一些自定义依赖属性。其中一个是ButtonStyle。我的用户控件基本上只包含一个按钮。示例代码段如下所示。

usercontrol中的按钮只能有两种样式 - 每种样式根据调用用户控件时传递的样式与其他样式(颜色,前景,背景等)根本不同。

该样式还需要包含DataTrigger作为设计的一部分。

我的XAML如何利用此自定义DP属性并在按钮上支持2种样式。

任何示例代码/链接/指针 - 都会非常感激

<StackPanel>
    <Button Command="{Binding SubmitCommand}" Content="{Binding ButtonContent}" />
</StackPanel> 

自定义DP代码

public partial class ButtonUserControl : UserControl
{
    #region ButtonStyle DP
    public static readonly DependencyProperty ButtonStyleProperty = DependencyProperty.Register("ButtonStyle", typeof(string), typeof(ButtonUserControl), new PropertyMetadata(""));

    public string ButtonStyle
    {
        get { return (string)GetValue(ButtonStyleProperty); }
        set { SetValue(ButtonStyleProperty, value); }
    }
    #endregion

   #region ButtonContent DP
    public static readonly DependencyProperty ButtonContentProperty = DependencyProperty.Register("ButtonContent", typeof(string), typeof(ButtonUserControl), new PropertyMetadata(""));

    public string ButtonContent
    {
        get { return (string)GetValue(ButtonContentProperty); }
        set { SetValue(ButtonContentProperty, value); }
    }
    #endregion

    public ButtonUserControl()
    {
        InitializeComponent();
        var mw_vm = new ButtonUserControlViewModel();
        DataContext = mw_vm;
    }
}

0 个答案:

没有答案