如何删除ContentDialog中的填充/边距? This或其他人没有帮助我。我尝试过padding& ContentDialog的标记和根网格中的边距如下所示。
<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>
没有运气。但是,在Live Visual Tree中,我找到了一个占据这个区域的Grid(DialogSpace)。但是如何访问和修改呢?
答案 0 :(得分:6)
在这些情况下,第一步应该始终是查找 generic.xaml 文件,该文件负责定义多个控件的模板。
查看为 10.0.16299 版本( Fall Creators Update )定义的文件,我可以找到以下资源定义:
<Thickness x:Key="ContentDialogPadding">24,18,24,24</Thickness>
在Grid
的模板定义期间,后来在名为 DialogSpace 的ContentDialog
上引用了(正如您已正确识别的那样)。
<Grid x:Name="DialogSpace" Padding="{ThemeResource ContentDialogPadding}">
Thickness
资源,
在哪里覆盖值 24,18,24,24
更符合你的意图。您可以在范围是整个应用程序的位置覆盖此资源,方法是在 App.xaml 上实现它。但是想象你的应用程序只有一个ContentDialog
,或者你只想在一个地方做这个,那么在较低的范围内定义它是很合理的,比如在ContentDialog
资源级别,像这样:
<ContentDialog ...>
<ContentDialog.Resources>
<Thickness x:Key="ContentDialogPadding">0,0,0,0</Thickness>
</ContentDialog.Resources>
....
</ContentDialog>
Padding
依赖项属性删除对 ContentDialogPadding 资源的引用/ em>网格。
但是这些模板显然非常大,而且对于这么小的修改,它似乎不是合适的选择。 generic.xaml文件的位置如下:
C:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\{build version}\Generic