2017-06-05 22 views
0

マイWindowはこのようになりますDataTriggerあります最小化/復元

<Window.Style> 
     <Style TargetType="{x:Type Window}"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding IsFullscreen}" Value="true"> 
        <Setter Property="WindowState" Value="Maximized" /> 
        <!-- Other setters --> 
       </DataTrigger> 

       <DataTrigger Binding="{Binding IsFullscreen}" Value="false"> 
        <Setter Property="WindowState" Value="Normal" /> 
        <!-- Other setters --> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Window.Style> 

これは、ユーザーが最小化されるまではうまく動作し、復元を(例えば_ボタンをクリックしてからタスクバーのアイコンをクリックするなどして) IsFullscreenが変更されたときに、他のセッターの影響が引き続き続いているので、引き金が引き続き発生することがわかります。問題は、WindowState設定がもう注意されていないことです。他のセッターを削除してもこれが修正されるわけではありません。どうしたの?それを修正するために私は何ができますか?

問題はWindows 10のPCで発生しています。別のOSで何が起こるかについての情報はありません。

+0

プロパティを直接バインドしようとしましたか? – JanDotNet

+0

@JanDotNet私はトリガが必要とする他のもの(私が編集した設定者)のせいではなかったが、試してみたところ、同じ問題がある。 – dlf

答えて

2

異なる場所に依存プロパティが設定される可能性があるため、優先順位リストが必要です。このリストはhereです。

対応するボタンをクリックしてウィンドウを最小化すると、WindowState依存プロパティのローカル値をに設定しています。前に見た優先リストに従って、DataTriggerはもう働きません。

+0

この説明をサポートするために、スタイルやバインディングからではなく、コードから 'WindowState'を設定するために添付された動作を試してみました。 – dlf

関連する問題