.png)
在 Microsoft Expression Blend 应用程序中,可能需要在运行时创建一个具有非矩形形状外观的窗口。常见的例子包括桌面小程序、小组件和媒体播放器等。可以在应用程序中更改 Window 对象的一些属性,然后创建事件处理程序方法以使用户无需标题栏即可移动窗口,从而创建一个非矩形窗口。
使非矩形窗口变得透明
在“对象和时间线”面板中,选择 Window 对象,然后在“属性”面板中的“外观”下,将 WindowStyle 属性更改为 None ,以删除窗口外壳(标题栏)。按 F5 查看没有默认外壳的窗口外观。请注意,此时不再显示标准的“最小化”、“最大化”、“还原”和“关闭”按钮。另请注意,该窗口将无法拖动。按 Alt+F4 关闭窗口。
注意:有关其他 WindowStyle 选项的信息,请参阅 MSDN
上的 WPF Windows 概述
主题中的“WindowStyle”。在“属性”面板中的“外观”下,选中 AllowsTransparency 复选框。请注意,窗口边框将不再显示。
若要向窗口添加透明度,可以在“属性”面板中的“画笔”下,将 Window 对象的 Background 属性设置为“无画笔”
。或者,如果希望用户能够单击窗口的隐藏区域,可将 Background 属性设置为“纯色画笔”
,然后将背景画笔的 Alpha 属性设置为 1 。这将保留窗口的可单击区域同时又使此区域不可见。最后,在“对象和时间线”面板中,单击 LayoutRoot 以启用该对象,然后从“工具”面板中向美工板添加对象。可以通过为对象设置 OpacityMask 画笔,来创建各种效果。
有关如何执行此操作的信息,请参阅创建不透明蒙板。
也可以使用绘图工具(如“椭圆形”
和“笔”
工具)添加形状和绘制的路径,然后将这些对象移动到其他对象背后(右键单击某个对象并单击“排序”)。 LayoutRoot 的内容实际上将定义应用程序的大纲。再次按 F5 查看窗口当前的外观。请注意,此时仍不能拖动该窗口。按 Alt+F4 关闭窗口。
添加代码以允许在运行时拖动窗口
使窗口透明之后,就会失去重定位无标题栏窗口的能力。若要使窗口再次成为可移动的,必须向该窗口添加一个事件处理程序,然后向相关的代码隐藏文件中添加少量代码。
单击“文件”菜单上的“全部保存”,将项目保存到硬盘上。(如果项目从未保存过,则不能向其中添加事件处理程序方法。)
在“对象和时间线”面板中选定 Window 对象,然后在“属性”面板中单击“事件”
。在 MouseLeftButtonDown 旁边键入 OnMouseLeftButtonDown ,然后按 Enter 键。
修改代码隐藏文件中生成的事件处理程序方法,以便事件处理程序类似于以下形式:
private void OnMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { this.DragMove(); }Private Sub OnMouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Me.DragMove() End Sub按 F5 运行应用程序。
可以添加更多事件处理程序方法,例如可调用代码隐藏文件中
Close()方法的按钮 Click 事件的方法。有关如何创建事件处理程序方法的详细信息,请参阅编写将对事件做出响应的代码。
Microsoft Corporation 版权所有 ⓒ 2011。保留所有权利。