3
我無法擴展我在Windows字典中定義的樣式之一。獨自一人,它似乎將預期的風格應用於我的控件。但是,如果嘗試在我的一個userControls中使用basedOn屬性來擴展樣式,它將簡單地覆蓋主要樣式和所有基礎樣式消失。這裏有一個例子:如何從資源字典繼承/擴展樣式?
在資源字典,命名dict1.xaml:
<Style TargetType="{x:Type Button}">
<Setter Property="Background" Value="Pink"/>
</Style>
在主window.xaml:
<Window.Resources>
<ResourceDictionary Source="dict1.xaml"/>
</Window.Resources>
在叫userControl1.xaml用戶控件:
<UserControl.Resources>
<Style BasedOn="{StaticResource {x:Type Button}}"
TargetType="{x:Type Button}">
<Setter Property="FontWeight" Value="Bold"/>
</Style>
</UserControl.Resources>
用戶控件中的樣式僅覆蓋資源字典中的樣式,字體爲Bo LD。如果我刪除用戶控件中的樣式,字典中的樣式將啓動並且背景變爲粉紅色。我想要兩個。
任何想法我在這裏做錯了嗎?
謝謝。
是的,這是有道理的。當你說把它添加到app.xaml會達到什麼目的?是不是將它添加到Windows.Resources相同的東西?順便說一句,app.xaml文件不會在我的設置中使用,因爲窗體窗體是從一個winforms應用程序打開的,但這是另一個問題。 – HAdes 2010-09-01 16:59:45
@HAdes在App.XAML中添加它可以在整個應用程序中使用,因此您可以從任何地方引用其資源。 – Jay 2010-09-01 17:59:06
因此,看起來我所追求的是不可能的,唯一的解決方法就是按照您的建議進行操作,並將樣式複製到用戶控件中。我不喜歡這樣,因爲它不必要地複製樣式,並且意味着對樣式的任何修改都需要在兩者中進行。但我想現在它是有效的。乾杯。 – HAdes 2010-09-03 14:19:00