<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      一步一步學Silverlight 2系列(9):使用控件模板

      概述

      Silverlight 2 Beta 1版本發(fā)布了,無論從Runtime還是Tools都給我們帶來了很多的驚喜,如支持框架語言Visual Basic, Visual C#, IronRuby, Ironpython,對JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學Silverlight 2系列》文章帶您快速進入Silverlight 2開發(fā)。

      本文為系列文章第九篇,主要介紹如何使用控件模板定制控件的觀感。Silverlight提供了極其強大的功能,允許用戶完全定制控件的外觀。

      定制控件內(nèi)容

      在Silverlight中,WatermarkedTextBox控件可以為用戶的輸入提供一段提示信息,如果只是簡單的一點文字信息,有時候未免顯得單調(diào),如果加上相應的圖片說明效果會更好,如下圖所示的一個簡單的用戶登錄界面:

      TerryLee_Silverlight2_0045

      這樣看起來界面顯的就生動多了,XAML聲明如下:

      <Canvas Background="#46461F">
          <WatermarkedTextBox x:Name="UserName" Canvas.Top="30" Canvas.Left="50"
                              Width="320" Height="48">
              <WatermarkedTextBox.Watermark>
                  <StackPanel Width="320" Height="48" Orientation="Horizontal">
                      <Image Source="admin.png" HorizontalAlignment="Left"></Image>
                      <TextBlock Text="請輸入用戶名" VerticalAlignment="Center" Foreground="#999999"/>
                  </StackPanel>
              </WatermarkedTextBox.Watermark>
          </WatermarkedTextBox>
          
          <WatermarkedTextBox x:Name="Password" Canvas.Top="110" Canvas.Left="50"
                              Width="320" Height="48" HorizontalAlignment="Left">
              <WatermarkedTextBox.Watermark>
                  <StackPanel Width="320" Height="48" Orientation="Horizontal">
                      <Image Source="lock.png" HorizontalAlignment="Left"></Image>
                      <TextBlock Text="請輸入密碼" VerticalAlignment="Center" Foreground="#999999"/>
                  </StackPanel>
              </WatermarkedTextBox.Watermark>
          </WatermarkedTextBox>
          
          <Button Canvas.Top="180" Canvas.Left="100"
                  Width="120" Height="48">
              <Button.Content>
                  <StackPanel Orientation="Horizontal">
                      <Image Source="apply.png" HorizontalAlignment="Left"></Image>
                      <TextBlock Text="登 錄" VerticalAlignment="Center" Margin="10 0 0 0"></TextBlock>
                  </StackPanel>
              </Button.Content>
          </Button>
      </Canvas>

      很多控件都有Content或者Text屬性,我們完全可以充分發(fā)揮自己的想象力去進行定制,定制后控件仍然具有原來的功能行為,如上面的示例,當輸入用戶名控件獲得焦點時文字和圖片都將消失:

      TerryLee_Silverlight2_0046

      使用控件模板定制控件

      前面的示例中我們只是定制了控件的內(nèi)容,Silverlight允許我們完全對控件進行定制,而不僅僅是內(nèi)容。下面的示例中我們定制一個漸變色的圓角矩形按鈕。首先我們在App.xaml中創(chuàng)建一個RoundButton樣式,改寫按鈕的Template屬性:

      <Style x:Key="RoundButton" TargetType="Button">
          <Setter Property="Template">
              <Setter.Value>
                  <ControlTemplate TargetType="Button">
                      <Grid x:Name="RootElement">
                          <Rectangle Width="200" Height="80" RadiusX="15" RadiusY="15">
                              <Rectangle.Fill>
                                  <LinearGradientBrush StartPoint="0,0">
                                      <GradientStop Color="#FFFFFF" Offset="0.0" />
                                      <GradientStop Color="#EC04FA" Offset="1.0" />
                                  </LinearGradientBrush>
                              </Rectangle.Fill>
                              <Rectangle.Stroke>
                                  <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                      <GradientStop Color="#FCB2FD" Offset="0" />
                                      <GradientStop Color="#FFFFFF" Offset="1" />
                                  </LinearGradientBrush>
                              </Rectangle.Stroke>
                          </Rectangle>
                          <TextBlock Text="提 交" FontSize="26" Foreground="White"
                                     HorizontalAlignment="Center" VerticalAlignment="Center"/>
                      </Grid>
                  </ControlTemplate>
              </Setter.Value>
          </Setter>
      </Style>

      其中的漸變等內(nèi)容在Graphics相關(guān)內(nèi)容里將會寫到。現(xiàn)在在XAML中使用該樣式:

      <Canvas Background="#46461F">
          <Button x:Name="button1" Style="{StaticResource RoundButton}"
                  Canvas.Top="80" Canvas.Left="150"/>
      </Canvas>

      運行后就可以看到下面的效果:

      TerryLee_Silverlight2_0047

      創(chuàng)建模板

      上面的示例中,控件的文字以及控件的大小都是固定的,我們希望在開發(fā)人員使用中再設定,可以在控件模板中通過使用 {TemplateBinding ControlProperty} 的標識擴展句法來綁定到控件的屬性來實現(xiàn),使用ContentPresenter控件可以靈活的設置各個屬性。修改RoundButton樣式如下所示:

      <Style x:Key="RoundButton" TargetType="Button">
          <Setter Property="Template">
              <Setter.Value>
                  <ControlTemplate TargetType="Button">
                      <Grid x:Name="RootElement">
                          <Rectangle Width="{TemplateBinding Width}" Height="{TemplateBinding Height}"
                                     RadiusX="15" RadiusY="15">
                              <Rectangle.Fill>
                                  <LinearGradientBrush StartPoint="0,0">
                                      <GradientStop Color="#FFFFFF" Offset="0.0" />
                                      <GradientStop Color="#EC04FA" Offset="1.0" />
                                  </LinearGradientBrush>
                              </Rectangle.Fill>
                              <Rectangle.Stroke>
                                  <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                      <GradientStop Color="#EC04FA" Offset="0" />
                                      <GradientStop Color="#FFFFFF" Offset="1" />
                                  </LinearGradientBrush>
                              </Rectangle.Stroke>
                          </Rectangle>
                          <ContentPresenter
                              Content="{TemplateBinding Content}"
                              FontSize="{TemplateBinding FontSize}"
                              HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
                              VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
                              Foreground="{TemplateBinding Foreground}">
                          </ContentPresenter>
                      </Grid>
                  </ControlTemplate>
              </Setter.Value>
          </Setter>
      </Style>

      這樣在使用RoundButton時我們可以設定控件的文本及控件的大小:

      <Canvas Background="#46461F">
          <Button x:Name="button1" Style="{StaticResource RoundButton}"
                  Canvas.Top="80" Canvas.Left="50"
                  Content="提 交" FontSize="26"
                  HorizontalContentAlignment="Center"
                  VerticalContentAlignment="Center"
                  Foreground="White" Width="200" Height="60"/>
          
          <Button x:Name="button2" Style="{StaticResource RoundButton}"
                  Canvas.Top="80" Canvas.Left="260"
                  Content="取 消" FontSize="26"
                  HorizontalContentAlignment="Center"
                  VerticalContentAlignment="Center"
                  Foreground="White" Width="100" Height="100"/>
      </Canvas>

      運行時效果如下:

      TerryLee_Silverlight2_0048

      結(jié)束語

      本文簡單的介紹了如何定制控件的內(nèi)容以及通過控件模板完全定制控件,你可以從這里下載本文示例代碼。

      下一篇:一步一步學Silverlight 2系列(10):使用用戶控件

      posted @ 2008-03-08 17:07  TerryLee  閱讀(27213)  評論(48)    收藏  舉報
      主站蜘蛛池模板: 午夜免费无码福利视频麻豆| 午夜性刺激在线观看| 他掀开裙子把舌头伸进去添视频 | 进贤县| 日韩有码中文字幕一区二区| 亚洲国产精品无码一区二区三区| 极品少妇无套内射视频| 怡红院一区二区三区在线| 国产成年码AV片在线观看| 国产老熟女无套内射不卡| 亚洲熟妇自偷自拍另欧美| 久久婷婷成人综合色综合| 日韩AV高清在线看片| 亚洲综合天堂一区二区三区| 国产精品免费重口又黄又粗| 国产精品亚洲精品日韩已满十八小| 巨熟乳波霸若妻在线播放| av天堂亚洲天堂亚洲天堂| 久久亚洲人成网站| 年轻女教师hd中字3| 国产成人av一区二区三区不卡| 又爽又黄又无遮掩的免费视频| 一区二区中文字幕av| 亚洲国产午夜理论片不卡| 2020无码专区人妻系列日韩| 女同精品女同系列在线观看| 黄色A级国产免费大片视频| 精品超清无码视频在线观看 | 亚洲高清国产自产拍av| 男女爽爽无遮挡午夜视频| 亚洲一区二区三区在线观看精品中文| 免费视频欧美无人区码| 极品vpswindows少妇| 亚洲日韩AV秘 无码一区二区| 欧美精品高清在线观看| 亚洲永久精品免费在线看| 婷婷丁香五月六月综合激情啪| 99九九视频高清在线| 日韩人妻精品中文字幕专区| 麻豆一区二区中文字幕| 亚洲乱熟乱熟女一区二区|