常言笑的家

          Spring, Hibernate, Struts, Ajax, RoR

          Silverlight 3.0 消息框和提示控件

          1. ToolTipToolTip 

              控件用于顯示頁面元素的附加解釋信息.就像 html 中的某些元素的alt屬性

              示例代碼如下:ToolTip 控件 示例:

              

          <Grid x:Name="LayoutRoot" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,20,0" Width="300" Height="180">
          <Grid.RowDefinitions>
          <RowDefinition MinHeight="30"></RowDefinition>
          <RowDefinition MinHeight="30"></RowDefinition>
          <RowDefinition MinHeight="30"></RowDefinition>
          <RowDefinition MinHeight="30"></RowDefinition>
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
          <ColumnDefinition></ColumnDefinition>
          <ColumnDefinition></ColumnDefinition>
          </Grid.ColumnDefinitions>

          <TextBlock Height="14" Grid.Row="0" Grid.Column="0">用戶名:</TextBlock>
          <TextBlock Height="14" Grid.Row="1" Grid.Column="0">用戶密碼:</TextBlock>
          <TextBlock Height="14" Grid.Row="3" Grid.Column="0">密匙:</TextBlock>

          <TextBox Width="120" Height="24" Grid.Row="0" Grid.Column="1" ToolTipService.ToolTip="注意區分大小寫"></TextBox>
          <PasswordBox Width="120" Height="24" Grid.Row="1" Grid.Column="1"></PasswordBox>

          <Button Click="Button_Click" Width="120" Height="24" Grid.Row="2" Grid.Column="1" Content="獲取密匙" ToolTipService.ToolTip="單擊按鈕將獲取有效地開發授權密匙">
          </Button>
          </Grid>
          以上是一個獲取數據訪問密匙的頁面片段, 其中紅字部分就是 ToolTip 控件的聲明和使用, 當然你也可以用下面這種方式為按鈕聲明 ToolTip 提示控件, 其效果是一樣的<Button Click="Button_Click" Width="120" Height="24" Grid.Row="2" Grid.Column="1" Content="獲取密匙">

          <ToolTipService.ToolTip>
          <ToolTip Content="單擊按鈕將獲取有效地開發授權密匙"></ToolTip>
          </ToolTipService.ToolTip>
          </Button>
          效果圖如下:

          看了以上代碼會發現都是從 ToolTipService 這個ToolTip的管理類來獲取ToolTip對象, 而ToolTipService 類 還有兩個附加項屬性: Placement (ToolTip顯示位置) 和 PlacementTarget (ToolTip依照該屬性指定的元素進行定位) , 當使用代碼為大量元素綁定 ToolTip 時很有用

          2. Popup

              Popup 對象的作用是在現有Silverlight內容之上顯示Popup.Child屬性中指定的內容。繼續上例,當點擊按鈕時為提交過程模擬一個Loading效果, 當然這個Loading你等到天荒地老也不會完成的,該Loading效果的按鈕事件代碼如下ToolTip 對象 
              示例:

          using System.Windows.Controls.Primitives;
          ..

          private void Button_Click(object sender, RoutedEventArgs e)
          {
          //創建文本
          TextBlock textblock = new TextBlock();
          textblock.Text 
          = "Loading";
          textblock.Width 
          = 120;
          textblock.Height 
          = 24;
          textblock.FontSize 
          = 18;
          //創建遮蔽
          Grid grid = new Grid();
          SolidColorBrush brushcolor 
          = new SolidColorBrush();
          brushcolor.Color 
          = Colors.White;
          grid.Background 
          = brushcolor;
          grid.Opacity 
          = 0.8;
          grid.Width 
          = Application.Current.Host.Content.ActualWidth;
          grid.Height 
          = Application.Current.Host.Content.ActualWidth;
          grid.Children.Add(textblock);

          //創建Popup
          Popup p = new Popup();
          //為Popup指定內容
          p.Child = grid;
          //顯示Popup
          p.IsOpen = true;
          }
          運行后效果如下:



          3. ChildWindow

              提供可在父窗口之上顯示的一個窗口并且阻止與父窗口的交互, 實際上就是一個增強版的 Popup , 多了一個如上例中Loading那樣的遮蔽層,我們將上例中的Loading效果,改為使用 ChildWindow 實現代碼如下:ChildWindow 對象

              示例:

          private void Button_Click(object sender, RoutedEventArgs e)
          {
          SolidColorBrush brushcolor 
          = new SolidColorBrush();
          brushcolor.Color 
          = Colors.White;

          ChildWindow cw 
          = new ChildWindow();
          cw.HasCloseButton 
          = false;
          cw.FontSize 
          = 18;
          cw.Opacity 
          = 0.8;
          cw.OverlayBrush 
          = brushcolor;
          cw.Content 
          = "Loading";
          cw.Show();
          }
          運行后效果如下:


          實際上 ChildWindow 對象 還可以包含一個標題欄和一個關閉按鈕, 只不過loading不需要, 我們禁用了而已


          4. MessageBox

              MessageBox為使用 js 中的模態窗口來顯示信息, 還是以上例進行擴展, 比如該功能暫時關閉時,可以如下方式顯示:MessageBox 對象
              示例
          private void Button_Click(object sender, RoutedEventArgs e)
          {
             MessageBox.Show(
          "該功能暫時關閉,請稍后再試");
          }
          運行后效果如下:  

              

          posted on 2011-04-26 17:12 常言笑 閱讀(1446) 評論(2)  編輯  收藏 所屬分類: SilverLight

          Feedback

          # re: Silverlight 3.0 消息框和提示控件 2012-12-18 18:35 好看的小說

          代碼收藏了
          ~剛好要用到~~謝謝了  回復  更多評論   

          # re: Silverlight 3.0 消息框和提示控件 2012-12-18 19:20 木魚哥

          代碼好像有點問題  回復  更多評論   


          My Links

          Blog Stats

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 喀喇沁旗| 微博| 沾益县| 赞皇县| 交城县| 陆河县| 大英县| 商河县| 临夏市| 门源| 钟山县| 新龙县| 军事| 黔东| 竹山县| 崇明县| 五河县| 新龙县| 疏附县| 安多县| 伽师县| 河津市| 灵武市| 陆良县| 成武县| 沭阳县| 永清县| 湘潭市| 辽源市| 彭阳县| 文成县| 巩留县| 霍山县| 合水县| 荣成市| 册亨县| 阳原县| 无锡市| 南丹县| 彭山县| 天气|