C# 分辨率无关的WPF应用

C# 分辨率无关的WPF应用,c#,wpf,xaml,layout,C#,Wpf,Xaml,Layout,我正在开发一个独立于分辨率的数据库系统,一些使用的屏幕仍在1024 x 768的速度下运行,一些使用的屏幕在1920 x 1080的速度下运行,而另一些使用的是介于两者之间的所有屏幕 我以前没有在WPF上做过太多的工作,所以我只是开始尝试让我的头脑了解高度、宽度和对齐方式 目前我拥有的是一个主窗口,其中包含一个网格,在顶部有一行标签和一些导航按钮,以及登录人员的时间和用户名。然后,我在下面有第二行,它保存了一个框架,我将页面加载到该框架中,用于程序的主导航 在页面中,我主要使用网格布局,偶尔使用

我正在开发一个独立于分辨率的数据库系统,一些使用的屏幕仍在1024 x 768的速度下运行,一些使用的屏幕在1920 x 1080的速度下运行,而另一些使用的是介于两者之间的所有屏幕

我以前没有在WPF上做过太多的工作,所以我只是开始尝试让我的头脑了解高度、宽度和对齐方式

目前我拥有的是一个主窗口,其中包含一个网格,在顶部有一行标签和一些导航按钮,以及登录人员的时间和用户名。然后,我在下面有第二行,它保存了一个框架,我将页面加载到该框架中,用于程序的主导航

在页面中,我主要使用网格布局,偶尔使用堆栈面板。我遇到的最大问题之一就是这样一个问题

在低分辨率中,这是常见的,在高分辨率中,按钮看起来很好

这是父网格中按钮的XAML代码

    <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 ...