C# 分辨率无关的WPF应用
我正在开发一个独立于分辨率的数据库系统,一些使用的屏幕仍在1024 x 768的速度下运行,一些使用的屏幕在1920 x 1080的速度下运行,而另一些使用的是介于两者之间的所有屏幕 我以前没有在WPF上做过太多的工作,所以我只是开始尝试让我的头脑了解高度、宽度和对齐方式 目前我拥有的是一个主窗口,其中包含一个网格,在顶部有一行标签和一些导航按钮,以及登录人员的时间和用户名。然后,我在下面有第二行,它保存了一个框架,我将页面加载到该框架中,用于程序的主导航 在页面中,我主要使用网格布局,偶尔使用堆栈面板。我遇到的最大问题之一就是这样一个问题 在低分辨率中,这是常见的,在高分辨率中,按钮看起来很好 这是父网格中按钮的XAML代码C# 分辨率无关的WPF应用,c#,wpf,xaml,layout,C#,Wpf,Xaml,Layout,我正在开发一个独立于分辨率的数据库系统,一些使用的屏幕仍在1024 x 768的速度下运行,一些使用的屏幕在1920 x 1080的速度下运行,而另一些使用的是介于两者之间的所有屏幕 我以前没有在WPF上做过太多的工作,所以我只是开始尝试让我的头脑了解高度、宽度和对齐方式 目前我拥有的是一个主窗口,其中包含一个网格,在顶部有一行标签和一些导航按钮,以及登录人员的时间和用户名。然后,我在下面有第二行,它保存了一个框架,我将页面加载到该框架中,用于程序的主导航 在页面中,我主要使用网格布局,偶尔使用
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Content="HR" Margin="10" Click="RunHrSystem" FontSize="18.667" />
<Button Content="Companies" Margin="10" Click="RunCompSystem" FontSize="18.667" Grid.Row="1" />
<Button Content="People" Margin="10" Click="RunPeopleSystem" FontSize="18.667" Grid.Row="2" />
<Button Content="IT Management" Margin="10" Click="RunITManagementSystem" FontSize="18.667" Grid.Row="3"/>
<Button Content="Sales" Margin="10" FontSize="18.667" Grid.Row="4" />
<Button Content="Buying" Margin="10" FontSize="18.667" Grid.Row="5" />
<Button Content="Estimating" Margin="10" FontSize="18.667" Grid.Row="6"/>
<Button Content="Design" Margin="10" FontSize="18.667" Grid.Row="7"/>
</Grid>
是否有任何明显的错误,我在这里,是阻止按钮的大小根据较低的分辨率?正如我所说,在我的程序中,当使用按钮时,以及矩形形状和在某些情况下标签时,标签的底部也会被切断。目前,您正在声明使用
*
行定义
是内容的高度。在这种情况下,当分辨率更改时,行高度不会更改
<RowDefinition Height="Auto"/>
在您的特定示例中,我将使用StackPanel
<ScrollViewer>
<StackPanel>
<Button ...
我想在不可见的区域隐藏现有按钮是一种不好的做法。用户应滚动以访问底部按钮。如果您需要支持低分辨率显示器,应用程序应调整到当前分辨率。
我想最好的方法是减小边距,为行定义设置*并限制网格高度,以防止过度拉伸。我现在遇到了最后两个按钮完全与网格断开的情况。我想这就是你的意思,我应该把网格放在ScrollViewer
?这是我唯一能摆脱这一切的方法吗?另外一个问题是,是否有一种方法仅在需要时,即当按钮不适合屏幕时,才显示ScrollViewer
?我在这里简单地使用VerticalScrollBarVisibility=“Auto”
<ScrollViewer>
<StackPanel>
<Button ...