使用 MahApps.Metro 时如何防止应用程序图标拉伸到标题栏的高度?无论使用什么大小的图标,图标和标题栏边缘之间都没有空格。我也尝试过使用多尺寸图标,但这不起作用。
这是一个开箱即用的示例:
使用 MahApps.Metro 时如何防止应用程序图标拉伸到标题栏的高度?无论使用什么大小的图标,图标和标题栏边缘之间都没有空格。我也尝试过使用多尺寸图标,但这不起作用。
这是一个开箱即用的示例:
受到mahapps punker76 代码的强烈启发,您可以这样做:
<MahApps:MetroWindow.IconTemplate>
<DataTemplate>
<Grid Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Margin="4"
Background="Transparent"
RenderOptions.EdgeMode="Aliased"
RenderOptions.BitmapScalingMode="HighQuality">
<Image Source="Images/Document Alignment.ico"></Image>
</Grid>
</DataTemplate>
</MahApps:MetroWindow.IconTemplate>
但是 Icon Margin 属性可能更简单。
你有几个选择来满足你的要求。
Margin
属性Icon
并提交拉取请求MahApps.Metro在 Git 上,您可以将其分叉并根据需要使用Margin
属性调整标题栏图标。
目前 TitleBar Icon 似乎没有这个属性,并且根据它的 xaml 定义从边缘开始。
<Grid x:Name="PART_TitleBar" Background="Transparent"
Height="{Binding TitlebarHeight, Mode=OneWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Controls:MetroWindow}}}"
Visibility="{TemplateBinding ShowTitleBar, Converter={StaticResource BooleanToVisibilityConverter}}"
Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Visibility="{TemplateBinding ShowIconOnTitleBar, Converter={StaticResource BooleanToVisibilityConverter}}"
Source="{TemplateBinding Icon}"
RenderOptions.EdgeMode="Aliased"
RenderOptions.BitmapScalingMode="HighQuality" />
然后,您可以提交一个拉取请求,以允许作者将其集成到主库中,如果他们认为这是一个不错的功能。
在标题栏图像的源中添加透明填充。就像是:
现在,当您将其用作Icon
in时,MetroWindow
您应该有如下输出: