2013-12-17 49 views
0

我用一個名爲HighlightedBorderBrush的依賴屬性創建了一個UserControl。 我註冊依賴屬性如下:如何在UserControl依賴屬性上設置樣式?

public static readonly DependencyProperty HighlightedBorderBrushProperty = 
    DependencyProperty.Register("Highlighted_BorderBrush", typeof(Brush), 
           typeof(MyUserControl), 
           new FrameworkPropertyMetadata(Brushes.Black)); 

    public Brush HighlightedBorderBrush 
    { 
     get { return (Brush)GetValue(HighlightedBorderBrushProperty); } 
     set {SetValue(HighlightedBorderBrushProperty, value); } 
    } 

在我使用的用戶控件的代碼,我能夠在HighlightedBorderBrush財產直接在XAML中設置如下:

<local:MyUserControl HighlightedBorderBrush="Red" /> 

這工作得很好。但是,當我嘗試使用樣式時,出現錯誤:「調用的目標引發了異常。」

這裏就是我試圖使用樣式代碼:

<!-- Define a style for the user control --> 
    <Window.Resources> 
     <Style x:Key="UserControlStyle" TargetType="{x:Type local:MyUserControl}"> 
      <Setter Property="HighlightedBorderBrush" Value="Red"/> 
     </Style 
    </Window.Resources> 

    . 
    . 
    . 

    <!-- Use a Style to set the HighlightedBorderBrush property --> 
    <local:MyUserControl Style="{StaticResource UserControlStyle}" /> 

我猜,我失去了一些東西很明顯,但不能弄明白。幫幫我!

+2

DP註冊中的屬性名稱應該是「HighlightedBorderBrush」而不是「Highlighted_BorderBrush」。這是錯字嗎? –

+0

同時發佈內部異常,以便更清楚地瞭解錯誤。 –

+0

謝謝,Rohit!正如我所說,我可能錯過了一些顯而易見的東西,我就是!這確實是我的代碼中的一個錯字:「Highlighted_BorderBrush」應該是「HighlightedBorderBrush」,當我糾正錯字時,我的代碼工作正常。再次感謝你! – PeterBuilt

回答

0

如上所述屬性名稱在DependencyProperty註冊中不正確。

DP註冊的物業名稱應該是HighlightedBorderBrush而不是Highlighted_BorderBrush

+1

是的,謝謝!我感謝您的幫助! – PeterBuilt

+0

歡迎彼得。請接受它,以便可以關閉問題。 –