0

TextBox私は自分のアプリケーションで10 を使用しており、同じアプリケーションでスタイルを定義しましたApp.xaml。これは、アプリケーションのすべてのテキスト ボックスに適用されます。単一の に適用されるスタイルを無効にする方法TextBox

誰でもこれで私を助けることができますか?

以下のコードを使用してスタイルを設定しました

<Style TargetType="{x:Type TextBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type TextBox}">
                <Border Background="White" 
                    x:Name="Bd" BorderBrush="#FF50729f" CornerRadius="3"
                    BorderThickness="1"
                >
                    <ScrollViewer x:Name="PART_ContentHost"/>
                </Border>
                <ControlTemplate.Triggers>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Background" TargetName="Bd" Value="#FFe0dfe3"/>
                        <Setter Property="BorderBrush" TargetName="Bd" Value="#FF9da3ab"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate>
                <Border BorderBrush="#FFd22c2c" BorderThickness="1" 
                                Background="#FFfce8e8" CornerRadius="3" >
                    <AdornedElementPlaceholder></AdornedElementPlaceholder>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Background"  Value="#FFe0dfe3"/>
            <Setter Property="BorderBrush" Value="#FF9da3ab"/>
        </Trigger>
        <Trigger Property="Validation.HasError" Value="true">
            <Setter Property="ToolTip"
            Value="{Binding RelativeSource={RelativeSource Self},
            Path=(Validation.Errors)[0].ErrorContent}"/>
        </Trigger>
    </Style.Triggers>
</Style>
4

2 に答える 2

2

デフォルトのスタイルが必要な場合は、

<TextBox Style="{x:Null}"/>

それ以外の場合は、ターゲットタイプが定義されたCédric Bignonの回答 (以下のように) が機能します。アプリケーションに継承されるプロパティはありません TextBoxStyle

    <TextBox>
        <TextBox.Style>
            <Style TargetType="{x:Type TextBox}">
               <!-- your setters-->
            </Style>
        </TextBox.Style>
    </TextBox>

デフォルトのアプリケーション スタイルを少し変更したい場合は、次のテクニックを使用して、スタイル内でデフォルトとは異なるプロパティを再定義したり、追加のプロパティを定義したりできます。

     <TextBox>
        <TextBox.Style>
            <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
             <!-- your setters-->
            </Style>
        </TextBox.Style>
    </TextBox>
于 2013-02-01T12:19:23.270 に答える
1

空のスタイルを使用するだけです:

<TextBox>
    <TextBox.Style>
        <Style>

        </Style>
    </TextBox.Style>
</TextBox>
于 2013-02-01T11:00:56.687 に答える