none
如何设置单独的TextBlock的默认字体颜色,但又不影响在其他控件的字体颜色? RRS feed

  • 问题


  • 如何在不写x:key的Textblock的style设置字体颜色会覆盖大部分控件的字体颜色。设置了字体颜色的控件的字体颜色也会被覆盖掉,一些控件模板中也设置了textBlock,但也单独设置了颜色,这种也会被覆盖掉,

    如何设置TextBlock的默认字体颜色,但又不影响在其他控件(包含控件内的字体颜色,控件模板内的字体颜色,不希望控件模板内的textblock也被影响到)的字体颜色?,如何解决这个问题?

    如果只用label显示文字的话,比textblock性能消耗大吗?

    • 已编辑 Trian555 2019年1月15日 5:36
    2019年1月15日 5:35

全部回复

  • Hi Trian555,

    如果你想设置默认的TextBlock的字体颜色, 但是又不影响其他控件或者控件模板内的字体颜色, 你可以这样做:

      <Window.Resources>
            <Style TargetType="TextBlock">
                <Setter Property="Foreground" Value="Red" />
            </Style>
        </Window.Resources>
    
     <Button
                Name="btn2"
                Width="200"
                Height="30"
                Content="this is test" />
            <Button Name="btn3" Content="btn3" Margin="10">
                <Button.Template>
                    <ControlTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image
                                Width="100"
                                Height="100"
                                Source="/Photo/1.jpg" />
                            <TextBlock VerticalAlignment="Center" Text="btn3" />
                        </StackPanel>
                    </ControlTemplate>
                </Button.Template>
            </Button>
            <TextBlock
                Name="textblock1"
                Width="300"
                Height="30"
                Margin="10"
                Text=" this is test" />

    你可以看出只是TextBlock的字体颜色有变化, button或者button模板内的textblock字体颜色并没有变化。

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年1月16日 3:41
    版主