WPF にマルチウィンドウ アプリケーションがあり、メイン アプリケーション ウィンドウが非表示 (Visibility=Collapsed) で、表示可能な子ウィンドウが含まれています。アプリケーションは子ウィンドウをオンデマンドで作成します。新しく作成された子ウィンドウの座標と寸法を決定するアルゴリズムが必要です。明らかに、新しい子ウィンドウが別の子ウィンドウを (完全に) 覆ってはいけません。WPF は、この種のロジックを実装するためのサポートを提供していますか? それとも、すべて自分でやらなければなりませんか。これは大変な作業になると思います。私が探している動作は、Windows 7 の付箋の動作に非常に似ています。
私のコードの一部は、私が何を意味するかを本当に理解するのに役立ちます:
public void ViewModelsCollectionChanged(object sender,
NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (ViewModel viewModel in e.NewItems)
{
View view = new View(viewModel);
view.Owner = SleekNoteUI.App.Current.MainWindow;
...
}
}
}