C# 在WPF中创建自定义表单?
我目前正在学习WPF。到目前为止,我真的很享受。我喜欢制作美观的应用程序是多么容易,我想创建一个具有自定义窗口边框的应用程序。我希望它看起来像这样:C# 在WPF中创建自定义表单?,c#,wpf,C#,Wpf,我目前正在学习WPF。到目前为止,我真的很享受。我喜欢制作美观的应用程序是多么容易,我想创建一个具有自定义窗口边框的应用程序。我希望它看起来像这样: 我知道我可以很容易地将窗口类型更改为没有寄宿生,然后从那里开始,但这看起来很像WinForms。创建一个从Window派生的类并对其进行样式化不是更好吗?如果是这样,我该怎么做?谢谢 下面是一篇关于使用WPF定制窗口“chrome”的精彩文章: 它附带一个代码库项目,您可以从中下载代码: 要显示非标准边框,必须在窗口中设置AllowTransp
我知道我可以很容易地将窗口类型更改为没有寄宿生,然后从那里开始,但这看起来很像WinForms。创建一个从
Window
派生的类并对其进行样式化不是更好吗?如果是这样,我该怎么做?谢谢 下面是一篇关于使用WPF定制窗口“chrome”的精彩文章:
它附带一个代码库项目,您可以从中下载代码:
要显示非标准边框,必须在窗口中设置AllowTransparency=True且无边框。你是否想在课堂上这样做取决于你自己。您基本上必须认识到WPF实际上只是一个托管在标准窗口中的DirectX应用程序。因此,如果需要非标准窗口行为,则必须删除标准窗口边框,并根据要处理的标准窗口事件开始重新布线。拖动、最小化/最大化/还原、标题栏 真的,你不应该花超过30分钟到一个小时的时间来设计出接近你想要的东西,你当然可以把你的自定义窗口放在一个基类中,以便以后可以重复使用
我有一种感觉,在大多数情况下,这将是比尝试覆盖默认Windows绘图更好、更快的选择。有一个名为“Blendables”的产品,它在其捆绑包中包含一个ChromelessWindow控件,使这一操作非常容易。我自己从来没有真正使用过它,我只是知道它的存在并认为它可能有用。至少,这表明你可以按照自己的要求创建可重用、可模板化的chrome。如果你重新发明了标准窗口标题栏,请小心可访问性等。任何辅助工具如何知道如何关闭窗口等?但是,您可能不关心您的申请。