2015-02-10 88 views
1

我看不到明显的解决方案。我收到了一个图像文件,其中包含“图标”和要在标题栏中使用的文本。将图像设置为标题栏背景

理想情况下,我想简单地关闭图标,在标题栏部分使用图像,并完成它。我有一个半解决方案:

<Controls:MetroWindow 
ShowIconOnTitleBar="False"  
    WindowTitleBrush="Black" 
> 
<Controls:MetroWindow.LeftWindowCommands> 
    <Controls:WindowCommands> 
     <Image Source="/StaticResources/Masthead.png"></Image> 
    </Controls:WindowCommands> 
</Controls:MetroWindow.LeftWindowCommands> 

但它不是非常有效。现在没有一半的标题栏拖放等等。有没有更好的解决方案?我应该回去只使用图标,并自己写标题?

任何狡猾的想法,将不胜感激:)

+0

你玩过HitTestVisible吗?如果图像的背景是透明的,则可以将图像上的点击事件指向窗口的DragMove()方法。或者,您可以拆分图像并创建两个元素(图标和文本),并将文本上的点击重定向到DragMove() – 2015-02-10 14:26:08

+0

您可以将ImageBrush用作标题栏的背景。 – 2015-02-10 16:32:22

回答

2

这是您的要求更好的解决方案。您应该使用TitleTemplate而不是LeftWindowCommands

<Controls:MetroWindow.TitleTemplate> 
    <DataTemplate> 
     <Image Source="/StaticResources/Masthead.png" HorizontalAlignment="Left" /> 
    </DataTemplate> 
</Controls:MetroWindow.TitleTemplate> 

希望有所帮助。

但是,顺便说一下,为什么不使用简单的图像/图标(PNG)为Icon属性?并使用Title作为窗口标题?

+0

我同意,自己写头文件是很合理的,显然这是不可接受的。 [抵抗无穷无尽] – 2015-02-11 11:53:03