ユーザーがサーバー名を入力するテキストボックスがあり、入力時に FQDN として検証されます。テキストボックスの背景をピンクにする検証が失敗したときに適用されるスタイルもあります。ただし、ハイ コントラスト モードがオンのときにこれが発生するのは望ましくありません。これを達成する方法については、多くの文献を見つけることができないようです。
テキストボックス/スタイルは次のとおりです。
<TextBox ...>
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ServerName.HasErrorsToShow}" Value="true">
<Setter Property="TextBox.Background" Value="Pink" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
どうすればこれを達成できますか? ありがとう!
編集1:
マルチトリガーを使ってみました。それは有望に思えますが、私はそれを正しく理解することはできません. このコードのチャンクは機能しました (ハイ コントラストに基づいて決定できるかどうかをテストするため)。
<Style.Triggers>
<DataTrigger Binding="{Binding Source={x:Static SystemParameters.HighContrast}}" Value="True">
<Setter Property="TextBox.Background" Value="Pink" />
</DataTrigger>
</Style.Triggers>
しかし、MultiTrigger を追加しようとすると、「Set プロパティ 'System.Windows.FrameworkElement.Style' が例外をスローしました」という例外が発生しました。内部例外は、「'Property' には null 以外の値が必要です」でした。そのためのコードは次のとおりです。
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Binding="{Binding ServerName.HasErrorsToShow}" Value="True" />
<Condition Binding="{Binding Source={x:Static SystemParameters.HighContrast}}" Value="False" />
</MultiTrigger.Conditions>
<Setter Property="TextBox.Background" Value="Pink" />
</MultiTrigger>
</Style.Triggers>