Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WPF中创建自定义表单?_C#_Wpf - Fatal编程技术网

C# 在WPF中创建自定义表单?

C# 在WPF中创建自定义表单?,c#,wpf,C#,Wpf,我目前正在学习WPF。到目前为止,我真的很享受。我喜欢制作美观的应用程序是多么容易,我想创建一个具有自定义窗口边框的应用程序。我希望它看起来像这样: 我知道我可以很容易地将窗口类型更改为没有寄宿生,然后从那里开始,但这看起来很像WinForms。创建一个从Window派生的类并对其进行样式化不是更好吗?如果是这样,我该怎么做?谢谢 下面是一篇关于使用WPF定制窗口“chrome”的精彩文章: 它附带一个代码库项目,您可以从中下载代码: 要显示非标准边框,必须在窗口中设置AllowTransp

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


我知道我可以很容易地将窗口类型更改为没有寄宿生,然后从那里开始,但这看起来很像WinForms。创建一个从
Window
派生的类并对其进行样式化不是更好吗?如果是这样,我该怎么做?谢谢

下面是一篇关于使用WPF定制窗口“chrome”的精彩文章:

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


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

真的,你不应该花超过30分钟到一个小时的时间来设计出接近你想要的东西,你当然可以把你的自定义窗口放在一个基类中,以便以后可以重复使用


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

有一个名为“Blendables”的产品,它在其捆绑包中包含一个ChromelessWindow控件,使这一操作非常容易。我自己从来没有真正使用过它,我只是知道它的存在并认为它可能有用。至少,这表明你可以按照自己的要求创建可重用、可模板化的chrome。

如果你重新发明了标准窗口标题栏,请小心可访问性等。任何辅助工具如何知道如何关闭窗口等?但是,您可能不关心您的申请。