覆盖80%屏幕的屏幕

时间:2015-11-18 20:46:55

标签: xaml windows-store-apps

我正在尝试创建一个Windows 8.1应用程序,并想知道是否有一个控件允许我在XAML中创建类似弹出窗口或消息框的内容,覆盖大约80%的屏幕,屏幕两侧有一些边距?就像我们点击一​​个按钮一样,除了打开的弹出窗口之外,屏幕亮度变暗。作为一个例子,我附上了一张图片。Example from windows settings

1 个答案:

答案 0 :(得分:0)

除了MessageBox之外,还没有一个内置控件来执行此操作。通过创建一个部分不透明背景的网格和三行中间的控件,可以很容易地在Xaml中实现自己。在此实现中,行和列将调整为放置在中心的控件的大小。如果您愿意,也可以更直接地设置这些尺寸。

<Grid Background="{ThemeResource DimmedBrush}">
    <Grid.ColumnDefinitions>
         <ColumnDefinition Width="*" />
         <ColumnDefinition Width="Auto" />
         <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
         <RowDefinition Height="*" />
         <RowDefinition Height="Auto" />
         <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <!-- Coloured background for the center row -->
    <Rectangle Grid.Row="1" Grid.ColumnSpan="3" Fill="{ThemeResource AppThemeBrush}" />

    <!-- User control with the contents in the center row + column -->
    <local:MyControls Grid.Row="1" Grid.Column="1" />

</Grid>

有第三方库包含这样的控件。例如,请参阅Callisto&#39; s CustomDialog