
容器控件中包含三个控件,顶层为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设置的大一些,让它位于最上层,就能响应鼠标事件了。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)