给WPF窗口加上Quicker原生的置顶按钮

H-D-G 2023/8/1 发布 · 2023/8/1 更新 · 1297 次阅读

Tips:

  1. 你需要有一点C#基础
  2. 因为下面有XAML的具体实现,所以本文主要讲讲用C#代码如何实现

窗口右上角的按钮就是添加的置顶按钮。
这个置顶按钮是Quicker已经定义好的控件:WindowToolsControl

这个Class位于Quicker.View.Controls 命名空间下:

你可以这样来实例化它:new WindowToolsControl() 

现在你已经有了一个对象,还差把它添加到窗口上

如果你使用的是System.Windows.Window,你可能需要使用WindowChrome 来实现把对象添加到窗口的标题栏上,那这一步并不容易,至少我没有成功。

我选择了使用HandyControl.Controls.Window 来把对象添加到窗口的标题栏上,在这里特别感谢下CL,通过CL提供的文本窗口的部分XAML就可以很轻松的解决这个问题:

观察后不难发现:WindowToolsControl 这个对象在HandyControl.Controls.WindowNonClientAreaContent属性里,也就是说只要在窗口的构造函数中,把NonClientAreaContent属性的值设置成WindowToolsControl 对象即可。

最后附上一个简单的Demo:

using System.Windows;
using System.Windows.Controls;
using HandyControl.Controls;
using Quicker.View.Controls;

public static void Exec(Quicker.Public.IStepContext context)
{
    new HandyControl.Controls.Window()
    {
        NonClientAreaContent = new WindowToolsControl(),
        Style = (Style)Application.Current.Resources["AppWindowStyle"]
    }.Show();
}

运行后效果如下:

· {{comment.createTimeStr}}
{{reply.votePoints}}
回复   – {{reply.createTimeStr}}
回复 x
标签
目录
相关操作