4,viewbox
4.1、 WPF采用Grid和DockPanel来实现窗体自适应,通过控件的Margain属性来调整控件的起始位置和大小,不能使用Height和Width属性;
4.2、 如果要实现文本自动变化,采用Viewbox控件,可以使用Height和Width来调整控件大小;
4.3、 一般的做法,可以把MainWindow的最外面一层Grid放入Viewbox中,这样只需稍微调整一下某些控件的布局即可达到整个窗体的自适应效果,不然的话一个viewbox控件中只能放一个控件
<Viewbox Stretch="Fill">
<Grid>
<Button Margin="100,50,100,100">button1</Button>
<TextBox Margin="100,100,100,100">这里是个文本框</TextBox>
</Grid>
</Viewbox>
4.4、Stretch属性
4.2、 如果要实现文本自动变化,采用Viewbox控件,可以使用Height和Width来调整控件大小;
4.3、 一般的做法,可以把MainWindow的最外面一层Grid放入Viewbox中,这样只需稍微调整一下某些控件的布局即可达到整个窗体的自适应效果,不然的话一个viewbox控件中只能放一个控件
<Viewbox Stretch="Fill">
<Grid>
<Button Margin="100,50,100,100">button1</Button>
<TextBox Margin="100,100,100,100">这里是个文本框</TextBox>
</Grid>
</Viewbox>
4.4、Stretch属性
最经常使用的是fill属性值。
5,canvas
5.1,Canvas是最基本的面板,只是一个存储控件的容器,它不会自动调整内部元素的排列及大小,它仅支持用显式坐标定位控件,它也允许指定相对任何角的坐标,而不仅仅是左上角。可以使用Left、Top、Right、 Bottom附加属性在Canvas中定位控件。通过设置Left和Right属性的值表示元素最靠近的那条边,应该与Canvas左边缘或右边缘保持一个固定的距离,设置Top和Bottom的值也是类似的意思。实质上,你在选择每个控件停靠的角时,附加属性的值是作为外边距使用的。如果一个控件没有使 用任何附加属性,它会被放在Canvas的左上方(等同于设置Left和Top为0)。
5.2,Canvas的主要用途是用来画图。Canvas默认不会自动裁减超过自身范围的内容,即溢出的内容会显示在Canvas外面,这是因为默认 ClipToBounds=”False”;我们可以通过设置ClipToBounds=”True”来裁剪多出的内容。
5.3,Canvas内的子控件不能使用两个以上的Canvas附加属性,如果同时设置Canvas.Left和Canvas.Right属性,那么后者将会被忽略。
个人感觉比较好用的组合
<Viewbox Stretch="Fill">
<Canvas Width="300" Height="300">
<Button Width="100" Height="80" Canvas.Left="100" Canvas.Top="80">button1</Button>
<TextBox Width="100" Height="80" Canvas.Left="100" Canvas.Top="160">这里是个文本框</TextBox>
</Canvas>
</Viewbox>
5.2,Canvas的主要用途是用来画图。Canvas默认不会自动裁减超过自身范围的内容,即溢出的内容会显示在Canvas外面,这是因为默认 ClipToBounds=”False”;我们可以通过设置ClipToBounds=”True”来裁剪多出的内容。
5.3,Canvas内的子控件不能使用两个以上的Canvas附加属性,如果同时设置Canvas.Left和Canvas.Right属性,那么后者将会被忽略。
个人感觉比较好用的组合
<Viewbox Stretch="Fill">
<Canvas Width="300" Height="300">
<Button Width="100" Height="80" Canvas.Left="100" Canvas.Top="80">button1</Button>
<TextBox Width="100" Height="80" Canvas.Left="100" Canvas.Top="160">这里是个文本框</TextBox>
</Canvas>
</Viewbox>