我正在寻找一种解决方案,将窗口的粘附/吸附功能(类似Winamp)添加到现有的WPF应用程序中。与此前在这里提出的问题相同,只是我需要它适用于WPF。
它不必具备停靠功能,只要能够吸附到同一应用程序内其他窗口的边框和屏幕边缘(包括任务栏)即可。最好是开放源代码的解决方案。
谢谢
它不必具备停靠功能,只要能够吸附到同一应用程序内其他窗口的边框和屏幕边缘(包括任务栏)即可。最好是开放源代码的解决方案。
谢谢
这里是您实际请求的解决方案:
假设我们有两个名为MainWindow和Window2的Xaml窗口:
MainWindow:
Window2 windows2;
public void RealodPos()
{
if (windows2 == null) { windows2 = new Window2(this); this.Top = 300; }
windows2.Top = this.Top;
windows2.Left = this.Width + this.Left - 15;
windows2.Show();
}
private void Window_Activated(object sender, EventArgs e)
{
RealodPos();
}
private void SizeChenged(object sender, SizeChangedEventArgs e)
{
RealodPos();
}
private void LocationChange(object sender, EventArgs e)
{
RealodPos();
}
窗口2:
public partial class Window2 : Window
{
MainWindow Firstwin;
public Window2(MainWindow FirstWindow)
{
InitializeComponent();
Firstwin = FirstWindow;
}
void RealodPos()
{
this.Top = Firstwin.Top;
this.Left = Firstwin.Width + Firstwin.Left - 15;
}
private void Window_Activated(object sender, EventArgs e)
{
RealodPos();
}
private void Window_LocationChanged(object sender, EventArgs e)
{
RealodPos();
}
private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
RealodPos();
}
}
作为软件工程师的建议:
提示1:我不知道你会在哪里使用它,但最好将其转换为可重用组件,而不是硬编码为仅具有2个窗口。
提示2:转换
public Window2(MainWindow FirstWindow)
将 MainWindow 参数作为 Window 类的格式,以便在其他应用程序中重复使用更灵活的指针。
这是我建议给 pro-WPF 开发人员的解决方案:
不要按照这种方式操作,而是在 XAML 中制作自己的自定义窗口,并使用 UserControls 代替其他所需的窗口。
感谢阅读,请告诉我如果您需要其他任何东西或者需要代码作为项目文件。
WPF Docking Library 可能提供了你所需要的一些功能,但我不确定它是在整个屏幕上工作还是只在你的应用程序窗口中工作。