意见:Viewbox

时间:2011-06-04 14:24:29

标签: wpf scaling viewbox

我不想在WPF Windows应用程序中处理不同的屏幕分辨率。所以,我发现了一种方法,我认为这种方法可以处理所有显示的问题 - 在合理范围内。

窗口的设计如下:

<Window x:Class="MyWindow.Window3"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="872" Title="My Window" SizeToContent="Manual" WindowState="Maximized" d:DesignWidth="1242"
        Height="768" Width="1024" VerticalAlignment="Stretch" Closing="Window_Closing" Icon="Icon.ico" WindowStyle="ThreeDBorderWindow">

    <Grid>
        <Viewbox HorizontalAlignment="Left" VerticalAlignment="Top" StretchDirection="Both">
<!-- your controls go here -->

        </Viewbox>
    </Grid>
</Window>

使用此方法,无论分辨率如何,窗口都会缩放以与显示对齐。有一些角落案例,应该提到;

  • 如果窗口最小化到非常小的分辨率,它将无法使用,因为控件会大幅缩小。

  • 如果窗口的设计宽高比与目标不同,则可能会显示大量的空白

除了可能出现的负面约束外,我对此时的结果非常满意。我不需要担心滚动条或各种缩放选项 - 它只是有效!

我不能成为第一个发现这一点的人,但我之前没有看到过这种方法。我仍然是C#世界的新手,这是最近的发现。

我想听听我在这里没有考虑的方法的负面消息,并希望这将有助于其他人的设计工作。

感谢所有......

1 个答案:

答案 0 :(得分:2)

应该是用户选择元素的大小。他可以改变DPI或分辨率(虽然这对LCD来说可能不是一个好主意,它可以很好地与CRT一起使用)。如果他希望能够以较小的字体看到大量信息,那就让他去做吧。

如果他的显示器很小,你应该显示滚动条,而不是非常小的字体。