我在使用Window
图标时遇到了麻烦。
我已为项目内的.xaml文件中包含的Style
创建了自己的Windows
。我想要做的是在Icon
的左下角显示系统Window
。通常,直接在Window
上工作我可以设置Icon
在Icon
属性中指定它。但它不起作用,因为Window
使用我自己的Style
,其中未定义图标。所以我尝试在我的样式中为Setter
属性添加Icon
:
<Style x:Key="KavoWindowStyle" TargetType="{x:Type Window}">
<Setter Property="WindowChrome.WindowChrome">
<Setter.Value>
<WindowChrome CaptionHeight="30"
GlassFrameThickness="0"
CornerRadius="0"
NonClientFrameEdges="None"
ResizeBorderThickness="5"
UseAeroCaptionButtons="False"/>
</Setter.Value>
</Setter>
<Setter Property="Icon" Value="MyIcon.ico"/> <==================
<Setter Property="BorderBrush" Value="#2ECC71"/>
<Setter Property="Background" Value="#646464"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Grid>
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="1">
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
</Border>
<DockPanel Height="30"
VerticalAlignment="Top"
LastChildFill="False">
<TextBlock VerticalAlignment="Center"
DockPanel.Dock="Left"
Margin="5,0,0,0"
FontSize="14"
Foreground="#E8E8E8"
Text="{TemplateBinding Title}"
FontFamily="Open Sans Regular"/>
</DockPanel>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但它没有用(我运行程序时遇到异常)。我不知道这是否是正确的方法,如果没有,我想知道什么是正确的方法。提前谢谢!
答案 0 :(得分:2)
您必须将图标放在自定义标题栏中的某个位置。
例如,您可以在Image
左侧放置TextBlock
:
<DockPanel Height="30"
VerticalAlignment="Top"
LastChildFill="False">
<Image Source="{TemplateBinding Icon}" />
<TextBlock VerticalAlignment="Center"
DockPanel.Dock="Left"
Margin="5,0,0,0"
FontSize="14"
Foreground="#E8E8E8"
Text="{TemplateBinding Title}"
FontFamily="Open Sans Regular"/>
</DockPanel>
现在应该显示出来。请根据您的需要调整尺寸和布局。