簡體   English   中英

應用樣式鍵后未拾取TextBlock的默認樣式

[英]Default style for TextBlock not being picked up after applying a style key

我有一個<ResourceDictionary>包含這個:

<Style TargetType="TextBlock">
    <Setter Property="FontFamily" Value="..\..\Fonts\#Roboto"/>
    <Setter Property="FontSize" Value="14"/>
    <Setter Property="TextWrapping" Value="Wrap"/>
</Style>

這很好用。

現在我添加了另一種風格:

<Style x:Key="MyText" TargetType="{x:Type TextBlock}">
    <Setter Property="Foreground" Value="Red"/>
    <Setter Property="FontWeight" Value="SemiBold"/>
</Style>

但是,在將<TextBlock>更改為<TextBlock Style="{StaticResource MyText}"/> - 僅拾取第二個樣式塊中的樣式。 例如,現在忽略FontFamilyFontSizeTextWrapping

如何為TextBlock設置默認值,然后添加到它? 我不想將x:Key添加到'default'樣式,因為它已在整個系統中使用。

我認為你只需要在類型上建立你的鍵控風格。 見下面的例子。

注意BasedOn="{StaticResource {x:Type TextBlock}}"

<Window.Resources>
    <Style TargetType="TextBlock">
        <Setter Property="FontSize" Value="14"/>
        <Setter Property="Foreground" Value="Green" />
        <Setter Property="TextWrapping" Value="Wrap"/>
    </Style>
    <Style x:Key="MyText" TargetType="TextBlock">
        <Setter Property="Foreground" Value="Red"/>
        <Setter Property="FontWeight" Value="SemiBold"/>
    </Style>
    <Style x:Key="MyAppendedStyles" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}">
        <Setter Property="Foreground" Value="Red"/>
        <Setter Property="FontWeight" Value="SemiBold"/>
    </Style>
</Window.Resources>
<StackPanel>
    <TextBlock Text="Hello" />
    <TextBlock Style="{StaticResource MyText}" Text="Style Key" />
    <TextBlock Style="{StaticResource MyAppendedStyles}" Text="Style Key" />
</StackPanel>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM