Silverlight TabControl的SelectionChanged简单例子

来源:互联网 发布:ubuntu 分区 编辑:程序博客网 时间:2024/06/05 02:14

本文主要记录下SelectedChanged简单的用法:

xxxx.xaml界面代码:

<sdk:TabControl Name="tbControl" SelectionChanged="tbControl_SelectionChanged" >  <sdk:TabItem Name="tiAll" Margin="179,0,-200,0" HorizontalAlignment="Left"  >    <sdk:TabItem.Header>      <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Center">        <Image Name="qbImg" Source="/xxx;component/images/tiAllIcon_Sel.png" Width="20" Height="21" />        <TextBlock Text="全部" VerticalAlignment="Center" Margin="10,0,0,0" />      </StackPanel>    </sdk:TabItem.Header>    <Grid Name="tiAllGrid">      ...    </Grid>  </sdk:TabItem>  <sdk:TabItem Name="tiDetial" Margin="180,0,-200,0" HorizontalAlignment="Left">    <sdk:TabItem.Header>      <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" VerticalAlignment="Center">        <Image Name="deImg" Source="/xxx;component/images/tiDetialIcon.png" Width="20" Height="21" />        <TextBlock Text="明细" VerticalAlignment="Center" Margin="10,0,0,0" />      </StackPanel>    </sdk:TabItem.Header>    <Grid Name="tiDetialGrid">...    </Grid>  </sdk:TabItem></sdk:TabControl>

xxxx.xaml.cs 后台代码:

private void tbControl_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e){  TabControl tc = sender as TabControl;  if (tc == null || qbImg == null || deImg == null)    return;  if (tc.SelectedIndex == 0)  {    qbImg.Source = new BitmapImage(new Uri("/XXXX;component/images/tiAllIcon_Sel.png", UriKind.RelativeOrAbsolute));    deImg.Source = new BitmapImage(new Uri("/XXXX;component/images/tiDetialIcon.png", UriKind.RelativeOrAbsolute));  }  else if (tc.SelectedIndex == 1)  {    qbImg.Source = new BitmapImage(new Uri("/XXXX;component/images/tiAllIcon.png", UriKind.RelativeOrAbsolute));    deImg.Source = new BitmapImage(new Uri("/XXXX;component/images/tiDetialIcon_Sel.png", UriKind.RelativeOrAbsolute));  }}


这避免TabControl在加载过程中初始化读取qbImg, deImg的对象,因为开始加载时,这些对象是不存在的,当直接设置其Source时,会提示对象不存在的错误。
if (tc == null || qbImg == null || deImg == null)    return;


注:要补上using System.Windows.Media.Imaging;  否则会提示BitmapImage找不到对应的包。

----- 记录完毕---

0 0
原创粉丝点击