少し背景として-WindowsにはTouch/TabletPCの機能があり、「利き手」に応じてポップアップ/メニューの位置をシフトします(メニューが手の下に表示されないようにするため)。
基本的に、これが行うのは、「右利き」(タッチデバイスを接続するとデフォルトになるようです)に設定されている場合、開くすべてのポップアップが人為的に左に蹴られます。これにより、レイアウトの問題が発生します。そして、ポップアップを「ポップアップ元」のアイテムと並べます。
タブレットPCの設定が左利きに設定されています-Windowsからの人為的な修正はありません
タブレットPCの設定を右利きに設定-Windowsが人為的に位置を調整します
この設定がSystemParameters.MenuDropAlignmentで設定されていることを検出できます。また、些細なポップアップの場合は、ポップアップの実際の幅を使用してこれを調整できます。ただし、動的ポップアップの場合、および右から左へのサポートをミックスに投入すると、これは正しくありません。仕事。
現在、すべてのポップアップを確認し、手動で値を計算してキックを調整し、次のようなものをすべてに追加する必要がある可能性が高くなっています。
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Source={x:Static SystemParameters.MenuDropAlignment}}" Value="True"/>
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=FlowDirection}" Value="RightToLeft"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="HorizontalOffset" Value="-50"/> <!-- Set to arbitrary value to test -->
</MultiDataTrigger.Setters>
</MultiDataTrigger>
だから..質問に戻ります:-)この設定を見ているWPFポップアップを停止する方法を知っている人はいますか?
タッチデバイスをお持ちでない場合は、次のコマンドを実行してTabletPCの設定にアクセスできます。
C:\ Windows \ explorer.exe shell ::: {80F3F1D5-FECA-45F3-BC32-752C152E456E}
そして、それがあなた自身のために作る混乱を見てください:-)