【问题标题】:Is there any default strategy to prepare application for a resolution change?是否有任何默认策略来准备申请更改决议?
【发布时间】:2011-04-12 12:45:36
【问题描述】:

如何准备 Silverlight 或 WPF 应用程序以从大分辨率更改为小分辨率?

我猜使用停靠面板策略仅适用于从小分辨率更改为大分辨率。

那么,有什么默认策略吗?谢谢。

问题:我在像素 1024、768 处有一个按钮。我将分辨率更改为 800x600。

【问题讨论】:

标签: c# .net wpf silverlight resolution


【解决方案1】:

前段时间我遇到了类似的问题。作为一种解决方法,我将窗口内容包围在 Viewbox 中。

使用 1024x768 而不是 1280x1024 的用户看到的应用程序内容更小,但他们更喜欢这样而不是一直滚动。 (WPF)

我将不得不为我们的下一个项目努力,希望有人有更好的想法!

【讨论】:

  • 哇,这可能太棒了。我会研究那个。后来我检查了遮阳篷。谢谢。
  • @Seva - 我们遇到的问题是分辨率差异太大,视图可能会被“拉伸”。例如,如果您在笔记本电脑的宽屏幕上使用该应用程序。但到目前为止,人们普遍更喜欢这个。
【解决方案2】:

好吧,您可以将布局设计为 Stretch,并在设计时考虑到 800x600,因此只要布局大于 800x600,它就会适合。但是……

如果你真的想要一些花哨的东西,检测窗口大小/ActualHeight 和 ActualWidth 的变化(使用 SizeChanged)然后通过代码根据大小缩放应用程序(使用动态变换)。

例如,在您的主视图中的“LayoutRoot”中:

var x = new ScaleTransform();
            x.ScaleX = .5; // Do fancy computation here
            x.ScaleY = .5; // Do fancy computation here
            this.LayoutRoot.RenderTransform = x;

只是一个想法,我的意思是如果屏幕比你的设计大,你放大,反之亦然。

希望这会有所帮助。

【讨论】:

  • 是的,我希望不需要实现它,但它是一个解决方案^^。谢谢
  • 好吧,我认为代码更糟糕。您可以渲染整个布局!这非常好。这对我来说是最好的遮阳篷 =)
【解决方案3】:

我认为这样做更好:

ScrollViewer Background="GreenYellow" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" Name="layoutRoot"> Canvas Width="1024" Height="768"> dataInput:Label Height="50" Name="label1" Width="100" Canvas.Left="540" Canvas.Top="131" Content="aeeeeeeee" /> Button Canvas.Left="12" Canvas.Top="131" Content="Button" Height="23" Name="button1" Width="75" /> Button Canvas.Left="937" Canvas.Top="147" Content="Button" Height="23" Name="button2" Width="75" /> Button Canvas.Left="510" Canvas.Top="21" Content="Button" Height="23" Name="button3" Width="75" /> Button Canvas.Left="482" Canvas.Top="550" Content="Button" Height="23" Name="button4" Width="75" /> /Canvas> /ScrollViewer>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2019-10-15
    • 2010-12-02
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多