文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[Silverlight入门系列]自定义TabControl控件实现TabItem关闭按钮

[Silverlight入门系列]自定义TabControl控件实现TabItem关闭按钮

时间:2011-06-14  来源:Mainz

Silverlight4的Toolkit提供了TabControl控件,很好用,用它来实现一个TabItem的关闭按钮很简单,类似这样的效果:

代码非常简单,XAML部分:

<UserControl x:Class="SilverlightApplication1.SilverlightControl1"
xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d
="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc
="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable
="d"
d:DesignHeight
="300" d:DesignWidth="400" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

<Grid x:Name="LayoutRoot" Background="White">
<sdk:TabControl Height="176" HorizontalAlignment="Left" Margin="55,62,0,0" Name="tabControl1" VerticalAlignment="Top" Width="284">
<sdk:TabItem>
<sdk:TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Tab1"/>
<Ellipse Width="20" Height="20" Fill="Blue"/>
</StackPanel>
</sdk:TabItem.Header>
<Ellipse Width="20" Height="20" Fill="Blue"/>
</sdk:TabItem>
<sdk:TabItem>
<sdk:TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Margin="0,0,5,0" Text="Tab2"/>
<Button Tag="1" Click="Button_Click" Padding="0" BorderThickness="0" Height="14" Width="14">
<Button.Content>
<Image Opacity="0.5" Source="/SilverlightApplication1;component/images/CloseButton.png"/>
</Button.Content>
</Button>
</StackPanel>
</sdk:TabItem.Header>
<ScrollViewer>
<StackPanel>
<TextBlock Text="Stack Panel with TextBlock and Ellipse" FontSize="12"/>
<Ellipse Width="20" Height="20" Fill="Blue"/>
</StackPanel>
</ScrollViewer>
</sdk:TabItem>
</sdk:TabControl>
</Grid>
</UserControl>

Xaml.cs部分:

using System;
using System.Windows;
using System.Windows.Controls;

namespace SilverlightApplication1
{
public partial class SilverlightControl1 : UserControl
{
public SilverlightControl1()
{
InitializeComponent();
}

private void Button_Click(object sender, RoutedEventArgs e)
{
Button b
= sender as Button;
this.tabControl1.Items.RemoveAt(Convert.ToInt32(b.Tag));
}
}
}

真的非常简单。

但是如果我们要实现更加好看的效果,例如类似VS2010这样的TabControl:

那就要自定义TabControl的Style和Template,自定义TabItem的Style和Template,自定义Button的Style和Template,而且要实现VisualStateManager来实现选中、鼠标经过等等的效果。

当然,你也可以使用第三方控件,比如Telerik等等。但风格还是要自定义的。

下一篇会给出代码实现下图所示的TabControl效果:(带关闭按钮的自定义TabControl,深度定制TabItem的Style和Template,而且关闭按钮绑定Command到ViewModel)

敬请关注。

相关阅读 更多 +
排行榜 更多 +
耶小兔子2

耶小兔子2

休闲益智 下载
nba2k20豪华版

nba2k20豪华版

体育竞技 下载
画线征服火柴人安卓版

画线征服火柴人安卓版

动作格斗 下载