控件是微软给我们封装的一系列现成的工具,我们可以使用这些工具,快速地部署我们想要的界面,当然,这些控件是非常强大的,所以就要求我们需要对这些控件非常了解,那么就可以做出非常厉害的界面。
首先,wpf的控件分为六个大的部分,内容控件,带有标题的内容控件,文本控件,列表控件,基于范围的控件,日期控件。
内容控件包括Lable,Button,ToolTip,ScrollViewer等。
带有标题的内容控件包括TabItem,GroupBox,Expander。
文本控件包括Textbox,PasswordBox,RichTextbox等,其中TextBlock是最轻量的控件。
列表控件包含ListBox,Combox等。
基于范围的控件包括Slider,ProgressBar等。
日期控件包含Calender,DatePicker。
我觉得使用控件,就要培养自己的一个意识,就是控件的元素或者属性可以任意扩展,比如我们举一个简单的Expander控件,他的标题,可以只放一个文本,但是有时候我们需要更加丰富的组成,看代码。
<StackPanel>
<Expander Header="按钮">
<Button>123</Button>
</Expander>
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal">
<Image Height="30" Source="234.png" ></Image>
<TextBlock VerticalAlignment="Center">带有图片的标题</TextBlock>
</StackPanel>
</Expander.Header>
<StackPanel>
<TextBlock>内容</TextBlock>
<TextBlock>内容2</TextBlock>
<TextBlock>内容3</TextBlock>
</StackPanel>
</Expander>
</StackPanel>
页面如下
可以看到,标题也可以放一个statckpanel,里面继续放image和textbox,并且布局都是通过自定义设置。
其他控件也是一样的道理 ,我觉得有两个控件可以单独拿出来记忆,就是ToolTip和PopUp控件,都可以理解为一个弹窗提示,然后增加交互,先看两个示例,第一个是提示,第二个是弹窗,并且我们尊崇上面的原则,也是自定义自己的内容元素。
<Grid>
<TextBlock>
鼠标放上去显示提示
<TextBlock.ToolTip>
<Grid>
<TextBlock>提示的文本</TextBlock>
<Image Source="234.png"></Image>
</Grid>
</TextBlock.ToolTip>
</TextBlock>
</Grid>
界面效果如下
<Grid>
<RadioButton Name="bt1" >选中就弹窗哦</RadioButton>
<Popup Name="pp" IsOpen="{Binding ElementName=bt1, Path=IsChecked}" Placement="Mouse">
<Grid Background="White">
<TextBlock>提示的文本</TextBlock>
<Image Source="234.png"></Image>
</Grid>
</Popup>
</Grid>
效果如下
两个都会弹窗,那么有啥需求呢?tooltip会自动关闭,而popup不会,tooltip无法获得焦点,而popup可以,所以如果弹窗只是提示,更推荐使用tooltip,如果弹窗之后还有别的交互操作,那么就使用popup。
另外可以观察上面的例子,popup弹窗的那个IsOpen我是使用了数据绑定,这个概念一定要非常重要的建立起来,当然你可以使用事件,如果选中,在后台改,但是强烈不推荐,一定要养成前后台分离的概念,包括后面的触发器也是一样的道理。