C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

【WPF】TexkBlockのStyleについて

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■91715 / inTopicNo.1)  【WPF】TexkBlockのStyleについて
  
□投稿者/ tro (3回)-(2019/07/23(Tue) 23:42:46)

分類:[.NET 全般] 

TextBlockをStyleにてFontSizeを定義したところ、
Labelのフォントサイズまで変わってしまいました。
LabelにFontSizeを指定してもTextBlockのFontSizeで上書きされているようです。

別々のコントロールなのに、なぜこのようなことが起きてしまうのでしょうか。
またTextBlockとLabelそれぞれStyleに定義したい場合はどのようにしたら良いのでしょうか。
引用返信 編集キー/
■91718 / inTopicNo.2)  Re[1]: 【WPF】TexkBlockのStyleについて
□投稿者/ Hongliang (846回)-(2019/07/24(Wed) 06:27:12)
下記のごくシンプルな構造で確認しましたが、特に問題はありませんでした。
再現コードがないと何とも言えませんが、何か特殊な記述がされていたりするのでしょう。

<Window x:Class="MainWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  x:Name="Window" Width="300" Height="300">
  <Window.Resources>
    <Style TargetType="TextBlock">
      <Setter Property="FontSize" Value="32"/>
    </Style>
  </Window.Resources>
  <StackPanel>
    <TextBlock>test</TextBlock>
    <Label>test</Label>
    <Label FontSize="24">test</Label>
  </StackPanel>
</Window>

引用返信 編集キー/
■91723 / inTopicNo.3)  Re[1]: 【WPF】TexkBlockのStyleについて
□投稿者/ ぶなっぷ (201回)-(2019/07/24(Wed) 12:45:33)
これですよね?
https://codeday.me/jp/qa/20190403/538900.html

書かれているとおりです。
Aplicationではなく、Window側にリソースを設定してください。
引用返信 編集キー/
■91741 / inTopicNo.4)  Re[2]: 【WPF】TexkBlockのStyleについて
□投稿者/ tro (4回)-(2019/07/26(Fri) 17:01:17)
返信ありがとうございます。
説明不足ですみません、Styleは下記のリソースディクショナリーに定義して使用していました。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<SolidColorBrush x:Key="TextColor" Color="#FFFFFFFF"/>
<SolidColorBrush x:Key="DataDisplaySectionColor" Color="#000000"/>

<Style TargetType="{x:Type Label}">
<Setter Property="Background" Value="{StaticResource DataDisplaySectionColor}"/>
<Setter Property="Foreground" Value="{StaticResource TextColor}"/>
<Setter Property="FontSize" Value="16"/>
</Style>

<Style TargetType="{x:Type TextBlock}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Background" Value="{StaticResource DataDisplaySectionColor}"/>
<Setter Property="Foreground" Value="{StaticResource TextColor}"/>
<Setter Property="FontSize" Value="18"/>
</Style>

</ResourceDictionary>
引用返信 編集キー/
■91748 / inTopicNo.5)  Re[3]: 【WPF】TexkBlockのStyleについて
□投稿者/ ぶなっぷ (202回)-(2019/07/29(Mon) 09:06:37)
問題は、このリソースディクショナリーをどこで取り込んでいるかです。
AplicationのXAMLで取り込んでいるなら、Window側のリソースで取り込むようにしてみてください。
引用返信 編集キー/
■91763 / inTopicNo.6)  Re[4]: 【WPF】TexkBlockのStyleについて
□投稿者/ tro (5回)-(2019/07/31(Wed) 16:16:17)
UserContorolで取り込んでいます。

引用返信 編集キー/
■91807 / inTopicNo.7)  Re[5]: 【WPF】TexkBlockのStyleについて
□投稿者/ ぶなっぷ (203回)-(2019/08/05(Mon) 12:42:10)
私のところで試してみましたが、
UserControlでだけ取り込めば再現しません。

Applicationでも同様に取り込むと再現します。
Applicationでも取り込んでいませんか?

引用返信 編集キー/
■91884 / inTopicNo.8)  Re[6]: 【WPF】TexkBlockのStyleについて
□投稿者/ tro (6回)-(2019/08/08(Thu) 11:37:18)
はい、Applicationでも取り込んでいます。
引用返信 編集キー/
■91889 / inTopicNo.9)  Re[7]: 【WPF】TexkBlockのStyleについて
□投稿者/ とっちゃん (614回)-(2019/08/08(Thu) 14:20:47)
No91884 (tro さん) に返信
> はい、Applicationでも取り込んでいます。

ぶなっぷさんが書いていますが、Application で取り込まないようにすれば、現象が発生しなくなりますよ。

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ