如何将 Window 中的图像设置为 XAML 中的标题 MashAPPs.Metro
How to set Image in Window Title in XAML with MashAPPs.Metro
我有一个 window 并且想设置一个图片而不是标题文本,但它只显示图像命名空间的字符串。
代码:
<Controls:MetroWindow x:Class="AdminControlCenter.View.MainView"
...
Title="{Binding ImageViewModel.TitleBarImage}" Height="400" Width="600"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:MainViewModel}" Icon="{Binding ImageViewModel.Icon}">
图片:
图标显示正确,图像保存为位图图像。
如何在 window 标题中设置图片而不是普通文本?
由于您使用的是 MahApps 控件,因此您需要这样做:
<Controls:MetroWindow.IconTemplate>
<DataTemplate>
<Grid Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Margin="8 8 0 8"
Background="Transparent"
RenderOptions.EdgeMode="Aliased"
RenderOptions.BitmapScalingMode="HighQuality">
<Rectangle Fill="White">
<Rectangle.OpacityMask>
<VisualBrush Visual="{StaticResource appbar_resource_group}" Stretch="Uniform"/>
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
</DataTemplate>
</Controls:MetroWindow.IconTemplate>
如果需要,您可以将 Image 控件用于视觉画笔。
我用左Window命令图像和右Window菜单等命令实现了它。
代码:
<Controls:MetroWindow.LeftWindowCommands>
<Controls:WindowCommands>
<Image Source="{Binding ImageViewModel.TitleBarImage}"/>
</Controls:WindowCommands>
</Controls:MetroWindow.LeftWindowCommands>
<Controls:MetroWindow.RightWindowCommands>
<Controls:WindowCommands>
<VisualBrush Stretch="Fill"/>
<StackPanel Name="menuHolder" Orientation="Horizontal">
<Menu Name="MenuBar">
<MenuItem Name="Options" Header="Options" >
<MenuItem Name="Settings" Header="Settings"/>
<MenuItem Name="Close" Header="Close"/>
</MenuItem>
</Menu>
</StackPanel>
</Controls:WindowCommands>
</Controls:MetroWindow.RightWindowCommands>
图片
我有一个 window 并且想设置一个图片而不是标题文本,但它只显示图像命名空间的字符串。
代码:
<Controls:MetroWindow x:Class="AdminControlCenter.View.MainView"
...
Title="{Binding ImageViewModel.TitleBarImage}" Height="400" Width="600"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance vm:MainViewModel}" Icon="{Binding ImageViewModel.Icon}">
图片:
图标显示正确,图像保存为位图图像。
如何在 window 标题中设置图片而不是普通文本?
由于您使用的是 MahApps 控件,因此您需要这样做:
<Controls:MetroWindow.IconTemplate>
<DataTemplate>
<Grid Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Margin="8 8 0 8"
Background="Transparent"
RenderOptions.EdgeMode="Aliased"
RenderOptions.BitmapScalingMode="HighQuality">
<Rectangle Fill="White">
<Rectangle.OpacityMask>
<VisualBrush Visual="{StaticResource appbar_resource_group}" Stretch="Uniform"/>
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
</DataTemplate>
</Controls:MetroWindow.IconTemplate>
如果需要,您可以将 Image 控件用于视觉画笔。
我用左Window命令图像和右Window菜单等命令实现了它。
代码:
<Controls:MetroWindow.LeftWindowCommands>
<Controls:WindowCommands>
<Image Source="{Binding ImageViewModel.TitleBarImage}"/>
</Controls:WindowCommands>
</Controls:MetroWindow.LeftWindowCommands>
<Controls:MetroWindow.RightWindowCommands>
<Controls:WindowCommands>
<VisualBrush Stretch="Fill"/>
<StackPanel Name="menuHolder" Orientation="Horizontal">
<Menu Name="MenuBar">
<MenuItem Name="Options" Header="Options" >
<MenuItem Name="Settings" Header="Settings"/>
<MenuItem Name="Close" Header="Close"/>
</MenuItem>
</Menu>
</StackPanel>
</Controls:WindowCommands>
</Controls:MetroWindow.RightWindowCommands>
图片