找到工作区测量并在代码中设置一些属性以便它可以绑定到xaml中的Control的边距或高度/宽度属性是一个好习惯吗?
我这样做是为了让我的窗口根据可用的工作区调整大小.
const int w = SystemParameters.WorkArea.Width;
const int h = SystemParameters.WorkArea.Height;
public Thickness OuterGridMargin { get; }
MainViewModel()
{
OuterGridMargin = new Thickness(w/5,h/6,w/5,h/4);
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<Grid Margin="{Binding OuterGridMargin}" />
Run Code Online (Sandbox Code Playgroud)
我为一些外部容器执行此操作,以便布局不会以较低的分辨率混淆.目前我在20英寸的1600x900 res(96 dpi)下工作.我的应用程序是小工具,没有常规窗口.
我想知道是否有一些替代方法.
搜索[wpf]分辨率] 1提出了很多解决类似问题的问题,但我仍然陷入困境,无法得出如何实现良好的分辨率无关布局的结论.
我正在开发一个需要独立于分辨率的应用程序.应用程序将始终全屏,因此我必须设计我的UI,以便监视器分辨率不会影响应用程序的使用.我花了很多时间玩WPF试图完成这个.今天我发现了Viewbox.它似乎解决了我所有的问题.我所要做的就是放置用于在Viewboxes中布局每个屏幕的网格,就像魔法我有一个独立于分辨率的应用程序.
但是,这似乎很容易.感觉不对劲.我应该使用Viewboxes吗?如果不是我应该做什么呢?在我发现Viewbox之前,我很难想出一种在分辨率方面扩展字体大小的方法.使用Viewbox,我不必担心这一点.因此,如果使用Viewbox是错误的,我该如何调整文本大小?