문서화를 위해 여기에 비슷한 것을 달성 한 방법의 예를 추가하겠습니다. 내가 필요한 것은 전체 상위 창 콘텐츠 영역 (제목 표시 줄 제외)을 덮는 팝업 이었지만 대화 상자가 항상 아래쪽에서 약간 오프셋 되었기 때문에 단순히 대화 상자를 중앙에 배치하고 내용을 늘리는 것이 작동하지 않았습니다.
사용자 경험에 대한 참고 사항 : 테두리없는 대화 상자가 표시 될 때 부모 창을 끌거나 닫을 수없는 것은 좋지 않으므로 사용을 다시 고려할 것입니다. 나는 또한이 답변을 게시 한 후 이것을하지 않기로 결정했지만 다른 사람들이 볼 수 있도록 남겨 둘 것입니다.
인터넷 검색과 테스트 후 마침내 다음과 같이 할 수있었습니다.
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
작업을 수동으로 위치 결정.
결과:
이 작업을 수행하는 더 쉬운 방법이 있는지 모르겠지만 다른 방법은 나를 위해 작동하지 않는 것 같습니다.