質問

私は現在、透かしテキストでテキストボックスを作成しており、少しスタイリングの問題があります。透かし自体を作成するには、ここで説明されているコードを含めましたWPFの透かし /ヒントテキスト /プレースホルダーテキストボックス私は受け入れられた答えを使用しませんでしたが、最高票を持っている回答を使用しました。 (Adornerを使用しているもの)

私のテキストブロックは次のように見えます:

<AdornerDecorator>
    <TextBox HorizontalAlignment="Right"
                VerticalAlignment="Center"
                Width="190"
                Padding="16,2,20,2">
        <utils:WatermarkService.Watermark>
            <TextBlock Text="Search" />
        </utils:WatermarkService.Watermark>
    </TextBox>
</AdornerDecorator>

今、私はこの添付のプロパティで、その中のテキストブロックが私がapp.xamlで宣言した私のスタイリングから範囲から抜け出すという問題に直面しています。スタイリングは次のように見えます:

<Style TargetType="{x:Type Window}">
    <Setter Property="FontFamily"
            Value="Tahoma" />
    <Setter Property="FontSize"
            Value="8pt"></Setter>
    <Setter Property="Background"
            Value="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}" />
</Style>

app.xamlの添付プロパティ内でテキストブロックをスタイリングすることはどのように可能ですか。このスタイルをベースにして望むので、私はそれをサーバル時代を宣言する必要はありません。

役に立ちましたか?

解決

Declare same style for TextBlock 同じように in Application resources. 。これにより、アプリケーションのすべてのテキストブロックに適用されます。装飾者であろうとウィンドウの一部であろうと、アプリケーションのすべてのテキストブロックに適用されます。

<Style TargetType="{x:Type TextBlock}">
   <Setter Property="FontFamily"
           Value="Tahoma" />
   <Setter Property="FontSize"
           Value="8pt"></Setter>
   <Setter Property="Background"
         Value="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}"/>
</Style>

アップデート

リソースを複製したくない場合は、手に入れることができる最善です Label それ以外の TextBlock. 。そうすれば、スタイルを適用できます Control スタイルを導き出すことができます WindowLabel それから。

しかし、これは機能しません TextBlock 派生していないので Control.

   <Style TargetType="Control" x:Key="BaseStyle">
        <Setter Property="FontFamily" Value="Tahoma" />
        <Setter Property="FontSize" Value="8pt"></Setter>
        <Setter Property="Background" 
        Value="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}"/>
    </Style>

    <Style TargetType="{x:Type Window}"
           BasedOn="{StaticResource BaseStyle}"/>
    <Style TargetType="{x:Type Label}"
           BasedOn="{StaticResource BaseStyle}"/>

次に、TextBlockの代わりにAdornerdecorator内のラベルを使用する場合、正常に動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top