это на самом деле очень просто, провел небольшое исследование и нашел самый простой ответ, вы можете продолжать делать то, что вы уже делали, и просто установить свойство FullSizeDesired вашего ContentDialog до true .
Popup
или вы можете попробовать это с помощью всплывающего окна.
var c = Window.Current.Bounds;
var okButton=new Button{Content="Ok"};
okButton.Click += okButtonClicked; // now where you have this okButtonClicked event you can execute any code you want including, closing the popup.
var g = new Grid
{
Width = c.Width,
Height = c.Height,
Background = new SolidColorBrush(Color.FromArgb(0x20, 0, 0, 0)),
Children =
{
new StackPanel
{
Width = 400,
Height = 200,
Background = new SolidColorBrush(Colors.White),
Children=
{
new TextBlock{Text="Title"},
new TextBlocl{Text="description"},
okButton
}
}
}
};
var p = new Popup
{
HorizontalOffset = 0,
VerticalOffset = 0,
Width = c.Width,
Height = c.Height,
Child = g
};
p.IsOpen = true; // open when ready
обратите внимание, что Child of popup - это g , который является сеткой, вы можете поместить свой контент в эту сетку, или вы можете использовать StackPanel вместо этой сетки, а затем поместить свое содержимое в этой StackPanel все, что вы хотите здесь сделать, - это ваше решение, размещение элементов во всплывающем окне аналогично размещению элементов в ContentDialog.
достигнуть того же самого с помощью простой сетки вместе с рамкой
<Grid>
<Grid Horizontallignment="Stretch" VerticalAlignment="Stretch" Visibility="Collapsed" x:Name="ContentGrid" canvas.ZIndex="5"><--this grid will act as content dialog , just toggle its visibility t the backend-->
<--put all your content here along with ur ok and cancel buttons-->
</Grid>
<Frame/> <--this is the code where u hve ur frame-->
</Grid>
в вышеприведенном коде фрейм и ваша фактически сетка контента будут параллельны друг другу, и всякий раз, когда сетка контента видна только, она будет отображаться в приложении bcz, она имеет ZIndex больше 0 и ваш фрейм будет скрываться за ним, и всякий раз, когда его видимость будет свернута, она не будет отображаться, и вы сможете нормально видеть ваш кадр.