当前位置: 首页 > wzjs >正文

网站开发设计课程教案域名免费查询

网站开发设计课程教案,域名免费查询,宁波外贸公司招聘,广州网站制作哪家公司好本文使用4个例子介绍TabControl的使用。包括xaml以及C#代码生成TabControl.其中第4个例子是使用TabControl来实现IO监控,作为工控软件的一部分。 【例1】使用TabControl以及 TabItem实现简单功能: 注意:TabControl的属性 TabStripPlacement可…

         本文使用4个例子介绍TabControl的使用。包括xaml以及C#代码生成TabControl.其中第4个例子是使用TabControl来实现IO监控,作为工控软件的一部分。

【例1】使用TabControl以及 TabItem实现简单功能:

注意:TabControl的属性 TabStripPlacement可以对选项卡索引放置位置进行设置(上下左右)

 <TabControl Margin="5" TabStripPlacement="Right"><TabItem Header="Tab One"><StackPanel Margin="5" ><TextBlock>这是Tab 1</TextBlock><CheckBox>选项1</CheckBox><CheckBox>选项2</CheckBox><CheckBox>选项3</CheckBox></StackPanel></TabItem><TabItem Header="Tab two"><StackPanel ><TextBlock>这是Tab 2</TextBlock></StackPanel></TabItem></TabControl>

【例2】代码生成

        选项卡1中:通过建立一个StackPanel(其中添加文本以及按钮);然后设置为TabItem1的Content。

 public Window3(){InitializeComponent();TabItem newTab1 = new TabItem();newTab1.Header = "新选项卡1";StackPanel stackpanel = new StackPanel() ;stackpanel.Orientation = Orientation.Vertical;stackpanel.Children.Add(new TextBlock { Text = "动态添加的页面1内容" });stackpanel.Children.Add(new System.Windows.Controls.Button { Content = "按钮" });newTab1.Content = stackpanel;this.MyTab.Items.Add(newTab1);   TabItem newTab2 = new TabItem();newTab2.Header = "新选项卡2";newTab2.Content = new TextBlock { Text = "动态添加的页面2内容" };this.MyTab.Items.Add(newTab2);// 选择最后一个选项卡MyTab.SelectedIndex = MyTab.Items.Count - 1;this.DataContext = new MainViewModel3();}

【例3】使用MVVM进行绑定

<Window x:Class="WpfApp1.Window3"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:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="Window3" Height="450" Width="800"><TabControl Margin="5" TabStripPlacement="Top" Name="MyTab"ItemsSource="{Binding Tabs}" SelectedItem="{Binding SelectedTab}"><TabControl.ItemTemplate><DataTemplate><TextBlock Text="{Binding Header}"/></DataTemplate>            </TabControl.ItemTemplate><TabControl.ContentTemplate><DataTemplate><TextBlock Text="{Binding Content}"/></DataTemplate></TabControl.ContentTemplate></TabControl>    
</Window>
 public class TabItemModel{public string Header { get; set; }public string Content { get; set; }}public class MainViewModel3{public ObservableCollection<TabItemModel> Tabs { get; } = new ObservableCollection<TabItemModel>();public TabItemModel SelectedTab { get; set; }public MainViewModel3(){Tabs.Add(new TabItemModel { Header = "第一页", Content = "内容1" });Tabs.Add(new TabItemModel { Header = "第二页", Content = "内容2" });SelectedTab = Tabs[1];}}

【例4】PLC的IO监控界面

本文使用Uni

<UserControl x:Class="WpfApp1.windowIO"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:WpfApp1"xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"Background="#fafafa"><Grid Margin="10"><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="*"/><RowDefinition Height="Auto"/></Grid.RowDefinitions><!-- 模式切换 --><StackPanel Orientation="Horizontal" HorizontalAlignment="Center"><RadioButton x:Name="rbInputs" Content="全输入" GroupName="Mode" Margin="5" IsChecked="True" Checked="rbInputs_Checked" /><RadioButton x:Name="rbOutputs" Content="全输出" GroupName="Mode" Margin="5" Checked="rbOutputs_Checked"/></StackPanel><!-- 分页内容 --><TabControl Grid.Row="1" x:Name="PagesTab" Background="Transparent" BorderThickness="0"><TabControl.ItemContainerStyle><Style TargetType="TabItem"><Setter Property="Visibility" Value="Collapsed"/><!-- 隐藏Tab头 --></Style></TabControl.ItemContainerStyle></TabControl><!-- 翻页导航 --><StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center"><Button Content="上一页" Click="PrevPage_Click" Style="{StaticResource MaterialDesignFlatButton}"/><TextBlock Text="{Binding CurrentPage}" Margin="10,0" VerticalAlignment="Center"/><Button Content="下一页" Click="NextPage_Click" Style="{StaticResource MaterialDesignFlatButton}"/></StackPanel></Grid>
</UserControl>
    public partial class windowIO : UserControl{private windowIOModel _viewModel = new windowIOModel();private int _itemsPerPage = 32; // private int totalPages = 0;public bool bInitialized = false;public windowIO(){InitializeComponent();this.DataContext = _viewModel;UpdatePageContent();bInitialized = true;}private void UpdatePageContent(){PagesTab.Items.Clear();if (this.rbOutputs.IsChecked==true){totalPages = (_viewModel.Outputs.Count + _itemsPerPage - 1) / _itemsPerPage;}else{totalPages = (_viewModel.Inputs.Count + _itemsPerPage - 1) / _itemsPerPage;}for (int page = 0; page < totalPages; page++){var pageContent = new TabItem();var grid = new UniformGrid() { Columns = 2, Margin = new Thickness(10) };var UniformGrid_left = new UniformGrid() { Columns = 1 };var UniformGrid_right = new UniformGrid() { Columns = 1 };int i = 0;if (rbInputs.IsChecked == true){// 全输入模式foreach (var input in _viewModel.Inputs.Skip(page * 32).Take(32)){if(i<16){UniformGrid_left.Children.Add(new SingleIOMonitor{DataContext = input//IsActive = input.IsActive});}else{UniformGrid_right.Children.Add(new SingleIOMonitor{DataContext = input//IsActive = input.IsActive});};i++;}                 }else{// 全输入模式foreach (var output in _viewModel.Outputs.Skip(page * 32).Take(32)){if (i < 16){UniformGrid_left.Children.Add(new SingleIOMonitor{DataContext = output});}else{UniformGrid_right.Children.Add(new SingleIOMonitor{DataContext = output});}i++;}}grid.Children.Add(UniformGrid_left);grid.Children.Add(UniformGrid_right);pageContent.Content = grid;PagesTab.Items.Add(pageContent);}PagesTab.SelectedIndex = _viewModel.CurrentPage=0;}private void PrevPage_Click(object sender, RoutedEventArgs e){if (_viewModel.CurrentPage > 0){_viewModel.CurrentPage--;PagesTab.SelectedIndex = _viewModel.CurrentPage;}                }private void NextPage_Click(object sender, RoutedEventArgs e){if (_viewModel.CurrentPage < totalPages){_viewModel.CurrentPage++;PagesTab.SelectedIndex = _viewModel.CurrentPage;}            }private void rbInputs_Checked(object sender, RoutedEventArgs e){if(bInitialized==true){UpdatePageContent();}            }private void rbOutputs_Checked(object sender, RoutedEventArgs e){if (bInitialized == true){UpdatePageContent();}                }}
 /// <summary>/// IO 标签类/// </summary>public class IOLabel : ObservableObject, IComparable<IOLabel>{public int index;       //在byte数组中的序号public string Address { get; set; } //地址public string Comment { get; set; } //注释/// <summary>/// Value数值,即IO/// </summary>private bool _Value;public bool Value{get => _Value;set { SetProperty(ref _Value, value);}}public int CompareTo(IOLabel other){if (other == null) return 1; // null视为最小return index.CompareTo(other.index); // 使用int的CompareTo方法}}public class windowIOModel : ObservableObject{public ObservableCollection<IOLabel> Inputs { get; } = new ObservableCollection<IOLabel>();public ObservableCollection<IOLabel> Outputs { get; } = new ObservableCollection<IOLabel>();public BytesArrayTag inputTags;public BytesArrayTag OutputTags;private int _currentPage;public int CurrentPage{get => _currentPage;set { SetProperty(ref _currentPage, value); }}
}

http://www.dtcms.com/wzjs/408305.html

相关文章:

  • 嘉定专业做网站徐州seo排名收费
  • 做网购网站应该注意什么seo专员工资一般多少
  • 自己做网站要钱么app开发成本预算表
  • 域名展示网站源码运营推广是做什么的
  • WordPress网站被恶意登录佛山做网站建设
  • 网站建设需要哪些证件百度识图查图片
  • 孟村网 网站全网万能搜索引擎
  • 手机百度 网站提交今日热点新闻事件
  • 网站图片怎么做的高级成都电脑培训班零基础
  • 高效办理的网站建设新东方考研培训机构官网
  • 网站建设与实践模板企业网络组网设计
  • 东莞手机建网站推广品牌
  • 网站开发工资开封网站推广公司
  • html5商城网站源码网站优化排名软件推广
  • 昆明php网站建设经典软文广告
  • 攀枝花城市建设网站网站首页模板
  • 宁波网页设计制作汕头网站优化
  • 网站建设销售话术杭州seo营销公司
  • 宁德北京网站建设啥是网络推广
  • 广东省汕头市龙湖区疫情最新消息使用 ahrefs 进行 seo 分析
  • 成品网站源码1688版本号网站排名推广
  • 网站开发哪种语言更安全推广吧
  • 东道 网站建设百度怎么推广产品
  • 加盟店seo专业优化公司
  • 网站建设课程设计实训报告成都网络推广运营公司
  • 怎么切图做网站qq推广引流网站
  • 免费做网站txt外链中国万网官网
  • 公司网站是怎么做的搜索引擎优化的概念是什么
  • 沈阳做网站的公司有哪些哪个浏览器不屏蔽网站
  • 建立网站的基本流程有哪些步骤百度引流推广哪家好