在WPF中创建自定义表单?

13

我目前正在学习WPF技术,迄今为止真的很喜欢它。我喜欢它如何轻松地创建出漂亮的应用程序,并想要创建一个具有自定义窗口边框的应用程序。我希望它的外观类似于这样:

我知道可以通过更改窗口类型以去除边框然后进行修改,但那看起来太像WinForms了。是否最好只需创建一个从窗口(Window)派生的类并对其进行样式化呢?如果是的话,我该怎么做呢?谢谢!

3个回答

15

3
要显示非标准边框,您需要将AllowsTransparency设置为True并从窗口中删除Border。是否在类中执行此操作取决于您。您基本上必须意识到,WPF实际上只是一个托管在标准窗口中的DirectX应用程序。因此,如果您想要非标准的Windows行为,则必须放弃标准窗口边框,并根据您想要处理的标准窗口事件开始重新连接它。拖动,最小化/最大化/还原,标题栏。
实际上,您不应该花费超过30分钟到1小时的时间来创建接近所需内容的东西,您肯定可以将自定义窗口放入基类以供以后重复使用。
我有一种感觉,对于大多数情况而言,这将是比尝试覆盖默认Windows绘图更好和更快的选择。

如果您重新发明标准窗口标题栏,请注意辅助功能等问题。任何辅助功能工具如何知道如何关闭窗口等?但是,您可能不关心您的应用程序。 - Ian Ringrose

0

有一个名为"Blendables"的产品,其中在他们的"Essentials Mix"包中包含了ChromelessWindow控件,使此操作变得非常容易。我自己从未使用过它,但我知道它的存在并认为它可能会有用。至少它表明了您可以创建可重复使用的、可模板化的Chrome。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接