在Silverlight 2 Beta2 中使用TabControl
在Silverlight 2 Beta2 中新加入了TabControl控件,使用它可以帮助我们实现属性页的效果。
如下图:
本DEMO的XAML代码段如下:
<Canvas x:Name="LayoutRoot" Background="White">
<local:TabControl x:Name="tab1" Canvas.Top="20" Canvas.Left="20" Height="100" Width="300" />
<local:TabControl x:Name="tab2" Canvas.Top="140" Canvas.Left="20" Height="100" Width="300" />
<local:TabControl x:Name="tab3" Canvas.Top="280" Canvas.Left="20" Height="100" Width="300" >
<local:TabItem x:Name="white" Header="white" Background="white" Style="{StaticResource MyTabItemStyle}"/>
<local:TabItem x:Name="red" Header="red" Background="Red" Style="{StaticResource MyTabItemStyle}"/>
<local:TabItem x:Name="blue" Header="blue" Background="Blue" Style="{StaticResource MyTabItemStyle}"/>
</local:TabControl>
</Canvas>
<local:TabControl x:Name="tab1" Canvas.Top="20" Canvas.Left="20" Height="100" Width="300" />
<local:TabControl x:Name="tab2" Canvas.Top="140" Canvas.Left="20" Height="100" Width="300" />
<local:TabControl x:Name="tab3" Canvas.Top="280" Canvas.Left="20" Height="100" Width="300" >
<local:TabItem x:Name="white" Header="white" Background="white" Style="{StaticResource MyTabItemStyle}"/>
<local:TabItem x:Name="red" Header="red" Background="Red" Style="{StaticResource MyTabItemStyle}"/>
<local:TabItem x:Name="blue" Header="blue" Background="Blue" Style="{StaticResource MyTabItemStyle}"/>
</local:TabControl>
</Canvas>
下面是它的page.xaml.cs代码:
public Page()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Page_Loaded);
}
void tab3_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
tab3.Background = ((TabItem)tab3.SelectedItem).Background;
}
void tab2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
tab1.SelectedIndex = tab2.SelectedIndex;
//object o = tab1.FindName("first item");
}
void Page_Loaded(object sender, RoutedEventArgs e)
{
List<TabItem> tabItems = new List<TabItem>()
{
new TabItem() {Header = "第一选项", Content = "第一选项中内容"},
new TabItem() {Header = "第二选项", Content = "第二选项中内容"},
new TabItem() {Header = "第三选项", Content = "第三选项中内容"}
};
foreach (TabItem tabItem in tabItems)
{
tab1.Items.Add(tabItem);
}
tabItems = new List<TabItem>()
{
new TabItem() {Header = "第一选项", Content = "第一选项中内容"},
new TabItem() {Header = "第二选项", Content = "第二选项中内容"},
new TabItem() {Header = "第三选项", Content = "第三选项中内容"}
};
foreach (TabItem tabItem in tabItems)
{
tab2.Items.Add(tabItem);
}
tab1.TabStripPlacement = Dock.Bottom;
tab2.TabStripPlacement = Dock.Left;
tab3.TabStripPlacement = Dock.Top;
tab2.SelectionChanged += new SelectionChangedEventHandler(tab2_SelectionChanged);
tab3.SelectionChanged += new SelectionChangedEventHandler(tab3_SelectionChanged);
}
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Page_Loaded);
}
void tab3_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
tab3.Background = ((TabItem)tab3.SelectedItem).Background;
}
void tab2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
tab1.SelectedIndex = tab2.SelectedIndex;
//object o = tab1.FindName("first item");
}
void Page_Loaded(object sender, RoutedEventArgs e)
{
List<TabItem> tabItems = new List<TabItem>()
{
new TabItem() {Header = "第一选项", Content = "第一选项中内容"},
new TabItem() {Header = "第二选项", Content = "第二选项中内容"},
new TabItem() {Header = "第三选项", Content = "第三选项中内容"}
};
foreach (TabItem tabItem in tabItems)
{
tab1.Items.Add(tabItem);
}
tabItems = new List<TabItem>()
{
new TabItem() {Header = "第一选项", Content = "第一选项中内容"},
new TabItem() {Header = "第二选项", Content = "第二选项中内容"},
new TabItem() {Header = "第三选项", Content = "第三选项中内容"}
};
foreach (TabItem tabItem in tabItems)
{
tab2.Items.Add(tabItem);
}
tab1.TabStripPlacement = Dock.Bottom;
tab2.TabStripPlacement = Dock.Left;
tab3.TabStripPlacement = Dock.Top;
tab2.SelectionChanged += new SelectionChangedEventHandler(tab2_SelectionChanged);
tab3.SelectionChanged += new SelectionChangedEventHandler(tab3_SelectionChanged);
}
代码很简单,这里就不多说什么了。
源码下载链接,请点击这里:)
分类:
silverlight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix