如何准备Silverlight或WPF应用程序以从高分辨率更改为低分辨率?
我猜只使用DockPanel策略适用于从小分辨率更改到大分辨率。
那么,有没有默认策略呢?谢谢。
问题:我有一个按钮,其像素结束于1024、768。当我将分辨率更改为800x600时。
如何准备Silverlight或WPF应用程序以从高分辨率更改为低分辨率?
我猜只使用DockPanel策略适用于从小分辨率更改到大分辨率。
那么,有没有默认策略呢?谢谢。
问题:我有一个按钮,其像素结束于1024、768。当我将分辨率更改为800x600时。
有一段时间我也遇到了类似的问题。为了解决这个问题,我使用了Viewbox来包围窗口内容。
使用1024x768分辨率而不是1280x1024的用户会看到应用程序内容变小,但他们更喜欢这种方式,因为不需要经常滚动屏幕。(WPF)
在我们下一个项目中,我将继续研究这个问题,希望能找到更好的解决方法!
嗯,你可以设计你的布局为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;
只是一个想法,我的意思是如果屏幕比你的设计大,你可以放大,反之亦然。
希望这有所帮助。
我认为这样做更好:
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="按钮" Height="23" Name="button1" Width="75" />
Button Canvas.Left="937" Canvas.Top="147" Content="按钮" Height="23" Name="button2" Width="75" />
Button Canvas.Left="510" Canvas.Top="21" Content="按钮" Height="23" Name="button3" Width="75" />
Button Canvas.Left="482" Canvas.Top="550" Content="按钮" Height="23" Name="button4" Width="75" />
/Canvas>
/ScrollViewer>