1. 程式人生 > >WPF學習(6)-控制元件

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我是使用了資料繫結,這個概念一定要非常重要的建立起來,當然你可以使用事件,如果選中,在後臺改,但是強烈不推薦,一定要養成前後臺分離的概念,包括後面的觸發器也是一樣的道理。