在WPF中创建自定义表单?

时间:2009-09-24 04:09:38

标签: c# wpf

我正在学习WPF。到目前为止,我真的很享受它。我喜欢制作外观漂亮的应用程序是多么容易,并希望创建一个具有自定义窗口边框的应用程序。我希望它看起来像这样:

我知道我可以轻松地将Window类型更改为没有寄宿生并从那里开始,但这看起来很像WinForms。仅仅创建一个派生自Window并为其设计风格的类不是更好吗?如果是这样我怎么能这样做?谢谢!

3 个答案:

答案 0 :(得分:15)

这是一篇关于使用WPF自定义Window“chrome”的精彩文章:

Custom Window Chrome in WPF

它附带一个Code Gallery项目,您可以从中下载代码:

WPF Chrome

答案 1 :(得分:3)

要显示非标准边框,您必须设置AllowTransparency = True且窗口中没有边框。您是否想在课堂上这样做取决于您自己。您基本上必须意识到WPF实际上只是一个标准窗口中托管的DirectX应用程序。因此,如果您需要非标准的Windows行为,则必须删除标准窗口边框并根据要处理的标准窗口事件开始重新布线。拖动,最小化/最大化/恢复,标题栏。

真的,它不应该花费超过30分钟到一个小时来提出你想要的东西,你当然可以把你的自定义窗口放在基类中以便在路上重复使用。

我有一种感觉,对于大多数情况来说,这将是比尝试覆盖默认Windows绘图更好更快的选择。

答案 2 :(得分:0)

有一款名为“Blendables”的产品,其"Essentials Mix"捆绑包中包含ChromelessWindow控件,这使得这很容易实现。我自己从来没有真正使用它,我只知道它存在并认为它可能有用。至少它表明你可以做你想要的关于创建可重复使用的,可模压的铬。