wpf屏幕自适应用的是哪个控件

wpf屏幕自适应用的是哪个控件,第1张

容器控件采用DockPanel 把LastChildFill属性设置True

容器控件中包含三个控件,顶层为menu控件 注意menu属性设置 DockPanel.Dock="Top"

VerticalAlignment="Top"中间放一个viewbox ,viewbox属性设置:

Stretch="Fill"底层放一个StatusBar ,StatusBar属性设置为:DockPanel.Dock="Bottom"

Height="20"

VerticalAlignment="Bottom",这样自适应分辨率的外层环境变建立起来了,viewbox中放入内容即可。代码如下所示,

1 <DockPanel LastChildFill="True" >

2 <Menu DockPanel.Dock="Top" VerticalAlignment="Top" ></Menu>

3 <Viewbox Stretch="Fill" >

4

5 <Canvas HorizontalAlignment="Left" VerticalAlignment="Stretch" Background="#00A4C3EB" Width="1024" Height="630" >

6

7

8 </Canvas>

9

10 </Viewbox>

11 <StatusBar DockPanel.Dock="Bottom" Height="20" VerticalAlignment="Bottom"></StatusBar>

12 </DockPanel>

不可能的,

ViewBox是个缩放框,

在初始布局之后,如果ViewBox的大小变化,他的子控件会跟着缩放。

button是Viewbox的子控件,所以会跟着缩放, button上的文字,是button的Content属性

也是Viewbox的子控件, 所以肯定跟着缩放。

如果希望做到 容器长宽变化后 子控件大小变化,可以使用容器的SizeChanged事件,来捕获更改后 容器的长宽,然后来动态计算子控件的大小, 这种方式可以不影响子控件的字体大小

在ViewBox中可能存在多个图片或控件叠加,需要响应的控件可能位于下层,虽然能够看到,但是响应不了鼠标点击事件,可以在这个控件上增加一个Panel.ZIndex="xx",xx设置的大一些,让它位于最上层,就能响应鼠标事件了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11539700.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存