使用MahApps.Metro时,如何防止应用程序图标拉伸到标题栏的高度?无论使用何种大小的图标,图标和标题栏边缘之间都没有空格。我也尝试使用多尺寸图标,这不起作用。
这是一个开箱即用的示例:
答案 0 :(得分:15)
来自mahapps punker76's code的强烈启发,你可以这样做:
<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属性可能更简单。
答案 1 :(得分:3)
您有几种方法可以满足您的要求。
Margin
属性添加到Icon
并提交拉取请求 MahApps.Metro在Git上,您可以根据需要将其分叉并使用Margin
属性调整标题栏图标。
<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
中使用MetroWindow
作为{{1}}时,您应该输出如下内容: