WPF学习(6)-控件

      控件是微软给我们封装的一系列现成的工具,我们可以使用这些工具,快速地部署我们想要的界面,当然,这些控件是非常强大的,所以就要求我们需要对这些控件非常了解,那么就可以做出非常厉害的界面。

   首先,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我是使用了数据绑定,这个概念一定要非常重要的建立起来,当然你可以使用事件,如果选中,在后台改,但是强烈不推荐,一定要养成前后台分离的概念,包括后面的触发器也是一样的道理。 

       

猜你喜欢

转载自blog.csdn.net/whjhb/article/details/84544027