3
在我的wpf應用程序中,我想對所有文本框進行樣式設置。結果我的App.xaml看起來像:WPF創建樣式時不會覆蓋默認樣式
<Application x:Class="IM.WindowsApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Foreground" Value="Yellow"/>
</Style>
</Application.Resources>
</Application>
在MainWindow.xaml我:
<TextBox Text="Some Text" />
當我運行它的偉大的文本顯示黃色,就像我的預期。
現在,這裏是我的問題
現在我想一些額外樣式添加到該文本框。因此,我修改我的代碼看起來像
<TextBox Text="Some Text">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Opacity" Value=".8" />
</Style>
</TextBox.Style>
</TextBox>
當我跑我的文本框的前景不是黃色更多:(。我不想更換風格。
一個解決方案將是給原有的風格的資源鍵。然後,我可以把BasedOn={StaticRecource MyResourceKey}
,這不是一個解決方案,因爲我將不得不增加Style="{StaticResource MyResourceKey}"
在我的應用程序了所有的文本框,我會想避免這樣做。
沒有工作:(。我認爲它的工作似乎是一個很好的解決方案。 –
嗯..這是很奇怪的。我爲此創建了一個新項目,它適用於我。首先嚐試在空項目中做到這一點,也許你有另一種覆蓋前景的樣式。 – AntonS
我創建了一個基礎樣式''並且這樣做可以讓你的技術發揮作用。非常感謝!我不懂爲什麼。也許我不得不清理解決方案,這是毫無意義的。無論如何,再次感謝幫助偉大的工程。 –