• WPF 笔记 五 ListView ComboBox TabControl


    WPF ListView

    入门例子

        <Grid>
            <ListView Margin="10">
                <ListViewItem>
                    <StackPanel Orientation="Horizontal">
                        <Image Source="/WpfTutorialSamples;component/Images/bullet_green.png" Margin="0,0,5,0" />
                        <TextBlock>Green</TextBlock>
                    </StackPanel>
                </ListViewItem>
                <ListViewItem>
                    <StackPanel Orientation="Horizontal">
                        <Image Source="/WpfTutorialSamples;component/Images/bullet_blue.png" Margin="0,0,5,0" />
                        <TextBlock>Blue</TextBlock>
                    </StackPanel>
                </ListViewItem>
                <ListViewItem IsSelected="True">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="/WpfTutorialSamples;component/Images/bullet_red.png" Margin="0,0,5,0" />
                        <TextBlock>Red</TextBlock>
                    </StackPanel>
                </ListViewItem>
            </ListView>
        </Grid>
    View Code

     数据绑定

        <Grid>
            <ListView Margin="10" Name="lvDataBinding"></ListView>
        </Grid>
    namespace WpfApp1
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {            
                InitializeComponent();
                List<User> items = new List<User>();
                items.Add(new User() { Name = "John Doe", Age = 42 });
                items.Add(new User() { Name = "Jane Doe", Age = 39 });
                items.Add(new User() { Name = "Sammy Doe", Age = 13 });
                lvDataBinding.ItemsSource = items;
            }
        }
        public class User
        {
            public string Name { get; set; }
    
            public int Age { get; set; }
    
            public override string ToString()
            {
                return this.Name + ", " + this.Age + " years old";
            }
        }
    }

     前端使用ItemTemplate

        <Grid>
            <ListView Margin="10" Name="lvDataBinding">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <WrapPanel>
                            <TextBlock Text="Name: " />
                            <TextBlock Text="{Binding Name}" FontWeight="Bold" />
                            <TextBlock Text=", " />
                            <TextBlock Text="Age: " />
                            <TextBlock Text="{Binding Age}" FontWeight="Bold" />
                            <TextBlock Text=" (" />
                            <TextBlock Text="{Binding Mail}" TextDecorations="Underline" Foreground="Blue" Cursor="Hand" />
                            <TextBlock Text=")" />
                        </WrapPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </Grid>

     后台稍作修改

        public partial class MainWindow : Window
        {
            public MainWindow()
            {            
                InitializeComponent();
                List<User> items = new List<User>();
                items.Add(new User() { Name = "John Doe", Age = 42, Mail = "john@doe-family.com" });
                items.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" });
                items.Add(new User() { Name = "Sammy Doe", Age = 13, Mail = "sammy.doe@gmail.com" });
                lvDataBinding.ItemsSource = items;
            }
        }
    
            public class User
            {
                public string Name { get; set; }
    
                public int Age { get; set; }
    
                public string Mail { get; set; }
            }
    
    }
    View Code

    使用GridView绑定

        <Grid>
            <ListView Margin="10" Name="lvDataBinding">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
                        <GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
                        <GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
                    </GridView>
                </ListView.View>
            </ListView>
        </Grid>

     模板化单元格内容

        <Grid>
            <ListView Margin="10" Name="lvUsers">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
                        <GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
                        <GridViewColumn Header="Mail" Width="150">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="{Binding Mail}" TextDecorations="Underline" Foreground="Blue" Cursor="Hand" />
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>
        </Grid>

     ComboBox

    入门例子

        <StackPanel Margin="10">
            <ComboBox>
                <ComboBoxItem>ComboBox Item #1</ComboBoxItem>
                <ComboBoxItem IsSelected="True">ComboBox Item #2</ComboBoxItem>
                <ComboBoxItem>ComboBox Item #3</ComboBoxItem>
            </ComboBox>
        </StackPanel>

     数据绑定

        <StackPanel Margin="10">
            <ComboBox Name="cmbColors">
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Rectangle Fill="{Binding Name}" Width="16" Height="16" Margin="0,2,5,2" />
                            <TextBlock Text="{Binding Name}" />
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </StackPanel>

                InitializeComponent(); cmbColors.ItemsSource = typeof(Colors).GetProperties();

    TabControl

    选项卡标签文本自定义显示

        <Grid>
            <TabControl TabStripPlacement="Left">
                <TabControl.Resources>
                    <Style TargetType="{x:Type TabItem}">
                        <Setter Property="HeaderTemplate">
                            <Setter.Value>
                                <DataTemplate>
                                    <ContentPresenter Content="{TemplateBinding Content}">
                                        <ContentPresenter.LayoutTransform>
                                            <RotateTransform Angle="270" />
                                        </ContentPresenter.LayoutTransform>
                                    </ContentPresenter>
                                </DataTemplate>
                            </Setter.Value>
                        </Setter>
                        <Setter Property="Padding" Value="3" />
                    </Style>
                </TabControl.Resources>
                <TabItem Header="General">
                    <Label Content="Content goes here..." />
                </TabItem>
                <TabItem Header="Security" />
                <TabItem Header="Details" />
            </TabControl>
        </Grid>

    控制选项卡标签外观

        <Grid>
            <TabControl Margin="10" BorderThickness="0" Background="LightGray">
                <TabControl.Resources>
                    <Style TargetType="TabItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="TabItem">
                                    <Grid Name="Panel">
                                        <ContentPresenter x:Name="ContentSite"
                                            VerticalAlignment="Center"
                                            HorizontalAlignment="Center"
                                            ContentSource="Header"
                                            Margin="10,2"/>
                                    </Grid>
                                    <ControlTemplate.Triggers>
                                        <Trigger Property="IsSelected" Value="True">
                                            <Setter TargetName="Panel" Property="Background" Value="LightSkyBlue" />
                                        </Trigger>
                                        <Trigger Property="IsSelected" Value="False">
                                            <Setter TargetName="Panel" Property="Background" Value="White" />
                                        </Trigger>
                                    </ControlTemplate.Triggers>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </TabControl.Resources>
                <TabItem Header="General">
                    <Label Content="Content goes here..." />
                </TabItem>
                <TabItem Header="Security" />
                <TabItem Header="Details" />
            </TabControl>
        </Grid>

     

    另外一个例子

        <Grid>
            <TabControl Margin="10" BorderBrush="Gainsboro">
                <TabControl.Resources>
                    <Style TargetType="TabItem">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="TabItem">
                                    <Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="4,4,0,0" Margin="2,0">
                                        <ContentPresenter x:Name="ContentSite"
                                            VerticalAlignment="Center"
                                            HorizontalAlignment="Center"
                                            ContentSource="Header"
                                            Margin="10,2"/>
                                    </Border>
                                    <ControlTemplate.Triggers>
                                        <Trigger Property="IsSelected" Value="True">
                                            <Setter TargetName="Border" Property="Background" Value="LightSkyBlue" />
                                        </Trigger>
                                        <Trigger Property="IsSelected" Value="False">
                                            <Setter TargetName="Border" Property="Background" Value="GhostWhite" />
                                        </Trigger>
                                    </ControlTemplate.Triggers>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </TabControl.Resources>
                <TabItem Header="General">
                    <Label Content="Content goes here..." />
                </TabItem>
                <TabItem Header="Security" />
                <TabItem Header="Details" />
            </TabControl>
        </Grid>

  • 相关阅读:
    js FormData 的使用
    js代码 注释 test
    JavaScript创建对象的几种 方式
    js prototype 原型
    C# 遍历对象下的 属性
    C#模拟按键
    C#获取硬盘序列号
    C#结束Explorer进程
    Java书籍推荐
    编程资料合集
  • 原文地址:https://www.cnblogs.com/noigel/p/15869676.html
Copyright © 2020-2023  润新知