我用一個名爲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}" />
我猜,我失去了一些東西很明顯,但不能弄明白。幫幫我!
DP註冊中的屬性名稱應該是「HighlightedBorderBrush」而不是「Highlighted_BorderBrush」。這是錯字嗎? –
同時發佈內部異常,以便更清楚地瞭解錯誤。 –
謝謝,Rohit!正如我所說,我可能錯過了一些顯而易見的東西,我就是!這確實是我的代碼中的一個錯字:「Highlighted_BorderBrush」應該是「HighlightedBorderBrush」,當我糾正錯字時,我的代碼工作正常。再次感謝你! – PeterBuilt