ドキュメントのために、私がどのようにして同様のことを達成したかの例をここに追加します。必要なのは、親ウィンドウのコンテンツ領域全体(タイトルバーを除く)をカバーするポップアップでしたが、ダイアログは常に下から少しオフセットされているため、ダイアログを中央に配置してコンテンツを拡大するだけでは機能しませんでした。
ユーザーエクスペリエンスに関する注意:ボーダレスダイアログが表示されているときに親ウィンドウをドラッグ/閉じることができないのは良くないので、それを使用することを再検討します。また、この回答を投稿した後、これを行わないことにしましたが、他の人が見ることができるようにしておきます。
いくつかのグーグルとテストの後、私はついに次のようにそれを行うことができました:
var dialog = new DialogWindow
{
Owner = this
};
dialog.WindowStartupLocation = WindowStartupLocation.Manual;
dialog.WindowStyle = WindowStyle.None;
dialog.ShowInTaskbar = false;
dialog.ResizeMode = ResizeMode.NoResize;
dialog.AllowsTransparency = true;
var ownerContent = (FrameworkElement) Content;
dialog.MaxWidth = ownerContent.ActualWidth;
dialog.Width = ownerContent.ActualWidth;
dialog.MaxHeight = ownerContent.ActualHeight;
dialog.Height = ownerContent.ActualHeight;
var contentPoints = ownerContent.PointToScreen(new Point(0, 0));
dialog.Left = contentPoints.X;
dialog.Top = contentPoints.Y;
dialog.ShowDialog();
DialogWindow
ウィンドウであり、その所有者は、アプリケーションのメインウィンドウに設定されています。WindowStartupLocation
に設定する必要がありますManual
、作業への手動位置決めのために。
結果:
これを行うもっと簡単な方法があるかどうかはわかりませんが、他に何もうまくいかないようでした。