我正在尝试创建一个应用程序,它将占用屏幕上除标题栏和任务栏之外的最大工作区数量。
我不能在Xaml中使用WindowState.Maximize属性,因为我有一个基于配置文件中的项生成按钮的链接框。
我的问题是,因为SystemParameter.WorkArea.Height / Width以像素为单位给出了测量结果,但XAML中的高度需要在DIU(DIP)设备无关单元中进行测量。有没有办法在两者之间进行转换?
当我将窗口大小设置为system.parameter分辨率时,它不会覆盖整个工作区域并留下一个未覆盖的小条带,我假设是一些Windows 10区域用于调整大小或让用户执行其他操作我不需要的功能。
感谢您的帮助。
答案 0 :(得分:0)
这个怎么样?
public double DipsToPixelsX(double input)
{
return input * PresentationSource.FromVisual(Application.Current.Windows[0]).CompositionTarget.TransformToDevice.M11;
}
public double DipsToPixelsY(double input)
{
return input * PresentationSource.FromVisual(Application.Current.Windows[0]).CompositionTarget.TransformToDevice.M22;
}
public double PixelsToDipsX(double input)
{
return input / PresentationSource.FromVisual(Application.Current.Windows[0]).CompositionTarget.TransformToDevice.M11;
}
public double PixelsToDipsY(double input)
{
return input / PresentationSource.FromVisual(Application.Current.Windows[0]).CompositionTarget.TransformToDevice.M22;
}