【发布时间】:2019-11-25 15:18:27
【问题描述】:
我试图让我的 wpf 应用程序在加载时占用我的右侧监视器。我的方法是创建一个存储屏幕宽度值(作为双精度值)的属性,然后将其绑定到 Window.Left 属性。但无论我做什么,应用程序窗口都不会移动到我的右侧显示器。
这是我的 xaml
<Window x:Class="Foo.FooView"
.. declarations
Title="{Binding Title}"
Left="{Binding ScreenOffset, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
Height="800"
Width="1920"
SnapsToDevicePixels="True">
在我的视图模型中:
public double ScreenOffset
{
get
{
return _screenOffset;
}
set
{
if (_screenOffset != value)
{
_screenOffset = value;
RaisePropertyChanged(nameof(ScreenOffset));
}
}
}
private double _screenOffset = 0.0;
public FooViewModel()
{
ScreenOffset = Application.Current.MainWindow.Width + defaultOffset;
//Application.Current.MainWindow.Width = 1920
//defaultOffset = 10.0
}
我的数据绑定适用于我的应用程序中的其他控件。唯一似乎不起作用的绑定只是 Left 属性。谁能看到我做错了什么?提前谢谢了。
【问题讨论】:
-
你试过
Mode=TwoWay绑定吗?另外,window的状态是什么? -
@PavelAnikhouski 窗口状态设置为最大化,我尝试了 mode=twoWay。但窗口保持不变