[英]How can I create a style that is not automatically applied?
在這個答案中 ,如果您忽略了x:Name
屬性,則會(正確地?似乎是..)聲稱該樣式會自動應用於所有地方。
如果未在每個樣式上指定標識符,則該樣式將應用於與您指定的TargetType匹配的所有控件。 如果您希望按鈕看起來不同,則可以執行與上述相同的操作,但還可以包括該樣式的標識符,該標識符將由每個不同的按鈕使用:[...]
但是,當我添加x:Name
標識符時,應該不自動應用它,還是應該這樣做?
因為當我嘗試這個:
<Style TargetType="{x:Type TextBlock}" x:Name="RunningTextStyle">
<Setter Property="FontSize" Value="15" />
</Style>
在以這種方式鏈接到我的app.xaml
ResourceDictionary
中:
<Application.Resources>
<ResourceDictionary Source="ApplicationStyles.xaml" />
</Application.Resources>
它仍然會自動應用於所有TextBlock
。
如何創建必須與其標識符一起顯示的樣式?
我在VS2015中使用Resharper,當我嘗試通過以下方式手動將樣式添加到TextBlock
時, x:Key
名稱甚至都沒有顯示: Style="{StaticResource ...}"
定義(可能是這樣(我曾經有一次)可以,但通常是由R#或VS宣傳使用。
有趣的是,我只需要幾個小時就可以自動應用Button
樣式。
給樣式賦予x:Key="MyArbitraryStyleKey"
屬性。 它位於ResourceDictionary
,字典中某個事物的“名稱”(可以這么說)稱為Key,當您以這種方式查看它時,它實際上是有意義的。 從功能上來說,在XAML中,即使一開始的語義差異有些模糊, x:Name
和x:Key
也會以不同的方式調用不同的代碼來執行不同的操作。
<Style TargetType="{x:Type TextBlock}" x:Key="RunningTextStyle">
<Setter Property="FontSize" Value="15" />
</Style>
...
<TextBlock
Style="{StaticResource RunningTextStyle}"
Text="I tried Resharper once. Sent them back their demo, tied to a brick."
/>
如果Resharper不喜歡它,請向他們發送錯誤報告(嘿,事實證明Resharper喜歡它-我收回我所說的一切!)
只需使用由x:Name="RunningTextStyle"
插入的x:Key="RunningTextStyle"
x:Name="RunningTextStyle"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.