双方向バインディングウィンドウの位置に動作していない、私は以下のXAML(非関連部分を削除)している私は、ウィンドウの位置を保持しようとしています
<Window x:Class="App.MainWindow"
Title="MainWindow" Name="mainWindow"
Top="{Binding Source={StaticResource Settings}, Path=Default.PositionY}"
Left="{Binding Source={StaticResource Settings}, Path=Default.PositionX}"
AllowsTransparency="True" WindowStyle="None" SizeToContent="WidthAndHeight"
Background="#01000000" Topmost="{Binding Source={StaticResource Settings}, Path=Default.AlwaysOnTop}"
MouseLeftButtonDown="mainWindow_MouseLeftButtonDown"
「設定」App.xamlで定義されており、アプリの設定に対応
Googleでの検索では、私が使った方法とまったく同じ方法でいくつかの例を挙げています。
TopMostのバインディングは正確に期待通りに動作しますが、この値は実行間で維持されます TopとLeftのバインディングは片方向でしか動作しません。ウィンドウは設定から正しい場所を選択しますが、移動すると設定は更新されません。 Settings.Save関数のブレークポイントは、TopプロパティとLeftプロパティが期待どおりに変更されたことを示します。これらの値を保存直前の設定に手動でコピーしても問題ありません。私は両方のユーザー設定は、ウィンドウを移動するタイプとダブル
を定義している
PositionXと位置j(とにかくデフォルトでなければなりません)、明示的に影響なしにモード=双方向を指定しようとした は、以下のマウスハンドラ
で達成されますprivate void mainWindow_MouseLeftButtonDown(object sender, MouseButtonEventArgs args)
{
DragMove();
}
双方向バインディングが一方向にしか動作しない理由は何ですか?
Doh! - "TopMost"バインディングはTwoWayで動作するように見えましたが、今は動作しているように見える他のコードがあると思われます。 TwoWayを追加しても、最初の回は修正されませんでしたが、もう一度、 "厄介な"他のコード " – Taoist