如何删除ContentDialog中的填充/边距?这个或其他没有帮助我.我在ContentDialog的标签和Root Grid中尝试了填充和边距,如下所示.
<ContentDialog... Padding="0" Margin="0">
<Grid Background="Bisque" Width="500" Height="400" Padding="0" Margin="0">
<Button Content="X" Height="40" Width="40" VerticalAlignment="Top"
HorizontalAlignment="Right"></Button>
</Grid>
Run Code Online (Sandbox Code Playgroud)
没有运气.但是,在Live Visual Tree中,我找到了一个占据这个区域的Grid(DialogSpace).但是如何访问和修改它呢?
在这些情况下,第一步应该始终是查找generic.xaml文件,该文件负责定义多个控件的模板.
看一下为10.0.16299版本(Fall Creators Update)定义的文件,我可以找到以下定义的资源:
<Thickness x:Key="ContentDialogPadding">24,18,24,24</Thickness>
Run Code Online (Sandbox Code Playgroud)
在定义模板期间Grid,后来在名为DialogSpace(正如您已正确识别的)上引用了它ContentDialog.
<Grid x:Name="DialogSpace" Padding="{ThemeResource ContentDialogPadding}">
Run Code Online (Sandbox Code Playgroud)
Thickness使用相同的密钥标识符在项目中定义自己的资源,其中将值24,18,24,24覆盖为更符合您意图的值.您可以在范围是整个应用程序的位置覆盖此资源,方法是在App.xaml上实现它.但是想象你的应用程序只有一个ContentDialog或者你只想在一个地方做这个,那么在一个较低的范围内定义它是很有意义的,比如在ContentDialog资源层面,如下所示:
<ContentDialog ...>
<ContentDialog.Resources>
<Thickness x:Key="ContentDialogPadding">0,0,0,0</Thickness>
</ContentDialog.Resources>
....
</ContentDialog>
Run Code Online (Sandbox Code Playgroud)
Paddinggeneric.xaml文件的位置如下:
C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\{build version}\Generic
Run Code Online (Sandbox Code Playgroud)