C# WPF TabControl用法指南(精品)

概述

TabControl是我们常用的翻页控件,但是wpf自带的 TabControl功能和样式比较单一,假如我的tab页面比较多,标题在有限的空间放不下,需要用左右箭头翻页,同时需要加一个筛选跳转的功能,这时候我们就需要使用Dev的控件DXTabControl.

功能演示

代码实现

前台XAML:

<UserControl x:Class="Caliburn.Micro.Hello.TabControlView" 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" xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core" xmlns:dxlc="http://schemas.devexpress.com/winfx/2008/xaml/layoutcontrol" xmlns:local="clr-namespace:Caliburn.Micro.Hello" xmlns:cal="http://www.caliburnproject.org" mc:Ignorable="d" Height="450" Width="800" > <Grid Height="300" Width="250" HorizontalAlignment="Left" VerticalAlignment="Top"> <Grid.RowDefinitions> <RowDefinition Height="35"/> <RowDefinition Height="Auto"/> Grid.RowDefinitions> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <Label Content="跳转到页:" VerticalAlignment="Center" Margin="5"/> <TextBox Text="{Binding PageIndex}" MinWidth="50" VerticalAlignment="Center" Margin="5"/> <Button Content="跳转" Name="Button_Click"/> StackPanel> <dx:DXTabControl Grid.Row="1" SelectedIndex="{Binding SelectedIndex}" ItemsSource="{Binding ParamItems}" Margin="5">  <dx:DXTabControl.ItemHeaderTemplate> <DataTemplate> <StackPanel Orientation="Horizontal">  <dxlc:LayoutItem Label="{Binding Header}"/> StackPanel> DataTemplate> dx:DXTabControl.ItemHeaderTemplate> <dx:DXTabControl.ItemTemplate> <DataTemplate> <ContentControl cal:View.Model="{Binding SubView}" /> DataTemplate> dx:DXTabControl.ItemTemplate> <dx:DXTabControl.View> <dx:TabControlScrollView AllowHideTabItems="False" AllowAnimation="True"  AllowKeyboardNavigation="True" AllowScrollOnMouseWheel="True" ShowHeaderMenu="True"/> dx:DXTabControl.View>
dx:DXTabControl>
Grid>UserControl>

这里的ShowHeaderMenu="True"可以放出筛选的按钮,点击下拉按钮,选择要跳转的页面就可以跳转过去;

如果想擦除页面,将AllowHideTabItems设置true即可

每个页面通过模板绑定了一个子页面

 <dx:DXTabControl.ItemTemplate> <DataTemplate> <ContentControl cal:View.Model="{Binding SubView}" /> DataTemplate> dx:DXTabControl.ItemTemplate>

后台代码:

using PropertyChanged;using System.Collections.ObjectModel;
namespace Caliburn.Micro.Hello{ [AddINotifyPropertyChangedInterface] public class TabControlViewModel : Screen, IViewModel { public ObservableCollection ParamItems { get; set; } = new ObservableCollection(); public int SelectedIndex { get; set; } public int PageIndex { get; set; } public TabControlViewModel() { DisplayName = "TabControlTest"; PageIndex = 3;
ParamItems.Add(new ParamDTO() { Header = "1", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "2", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "3", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "4", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "5", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "6", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "7", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "8", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "9", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "10", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "11", SubView = new SubTabPageViewModel() }); ParamItems.Add(new ParamDTO() { Header = "12", SubView = new SubTabPageViewModel() }); }
public void Button_Click() { SelectedIndex = PageIndex - 1; } } public class ParamDTO { /// /// 标题 /// public string Header { get; set; }
/// /// SubView /// public SubTabPageViewModel SubView { get; set; } }
}


这里ParamDTO是数据模型,SubView 就是我们的子页面

源码下载

百度网盘链接:https://pan.baidu.com/s/1JuD8PHUacDNIt7iCvxRB_w

提取码:6666

dev控件官网学习网址:https://docs.devexpress.com/WPF/DevExpress.Xpf.Core.DXTabControl

展开阅读全文

页面更新:2024-03-12

标签:箭头   控件   前台   个子   样式   按钮   页面   代码   功能   标题   指南   精品

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top