如何定位窗口';s启动时位于用户右侧的位置';s屏幕
本文关键字:用户 屏幕 位置 于用户 窗口 何定位 启动 定位 | 更新日期: 2023-09-27 18:22:13
我目前正在C#中创建一个类似侧边栏的WPF应用程序。当用户启动应用程序时,我希望窗口自动将其自身定位到用户屏幕的一侧。我尝试了一些方法和谷歌搜索,但没有找到任何帮助。
下面是我尝试做的一个例子:
http://prntscr.com/5tfkz
我如何才能有效地实现这样的目标?
@dknaack
我试过这个代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Left = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - this.Width;
this.Top = 0;
this.Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
}
并得到以下错误:
错误1在未引用的程序集中定义了类型"System.Drawing.Size"。必须添加对程序集"System.Drawing,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"的引用。C: ''Users''Test''Documents''Expression''Blend 4''Projects''WindBar_Prototype_1''WindBar_Protype_1''MainWindow.xaml.cs 32 13 WindBar_Pototype_1
和
错误2"System.Drawing.Size"不包含"Width"的定义,也找不到接受"System.Drawing.Size"类型的第一个参数的扩展方法"Width)(是否缺少using指令或程序集引用?)C:''Users''Test''Documents''Expression''Blend 4''Projects''WindBar_Prototype_1''WindBar_Protype_1''MainWindow.xaml.cs 32 78 WindBar_Pototype_1
有什么帮助吗?
描述
您可以从System.Windows.Forms
使用Screen
。
因此,添加对System.Windows.Forms.dll
和System.Drawing.dll
的引用。然后更改MainWindow_Loaded
方法中的Left
和Height
属性。
样品
public MainWindow()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
this.Left = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right - this.Width;
this.Top = 0;
this.Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height;
}
更多信息
- MSDN-屏幕类
您可以使用SystemParameters
在不引用win表单程序集的情况下执行此操作。在窗口XAML的代码后面:
MainWindow() {
InitializeComponents();
this.Loaded += new RoutedEventHandler(
delegate(object sender, RoutedEventArgs args) {
Width = 300;
Left = SystemParameters.VirtualScreenLeft;
Height = SystemParameters.VirtualScreenHeight;
}
}
系统参数文档
在您的xaml:中
WindowStartupLocation="Manual"
在构造函数中:
Left = System.Windows.SystemParameters.PrimaryScreenWidth - Width
Top=0
public MainWindow()
{
InitializeComponent();
WindowStartupLocation = WindowStartupLocation.Manual;
Left = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - Width;
}
使用startPosition属性或位置属性
<body>
<script>
function myfunc()
{
w1=window.open('http://www.google.com','Google','left=0,top=0,width=250px,height=250px');
w2=window.open('http://www.yahoomail.com','Yahoo Mail','left=1166,top=0,width=250px,height=250px');
w3=window.open('http://www.people.com','People Magazine','left=1166,top=500,width=250px,height=250px');
w4=window.open('http://www.time.com','Time Magazines','left=0,top=500,width=250px,height=250px');
w5=window.open('http://www.ew.com','Entertainment Weekly','left=550,top=250,width=250px,height=250px');
}
function myclose()
{
w1.close(); w2.close(); w3.close(); w4.close(); w5.close();
w6=window.open('smartwindow.html',' mywindow',',');
}
</script>
<div id="cover">
<img src="images/abstract.jpeg" id="1" width="500px" height="400px" alt="color defined"onClick="myfunc()"/>
<input type="button" value="click to close all windows" onClick="myclose()"/>
</div>
</body>