WPF ComboBox学习4--数据模板的使用

效果图如下:

 

 1. 将ComboBox绑定到系统Colors

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

2. 使用数据模板创建Item,创建一个正方形用当前颜色填充,后加一个文本框显示颜色名称

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

3.方便观察选择的项,将窗口背景改变了选择的颜色

        private void cmbColors_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Color selectedColor = (Color)(cmbColors.SelectedItem as PropertyInfo).GetValue(null, null);
            this.Background = new SolidColorBrush(selectedColor);
        }

加上3个Button,来改变窗口背景色。 

<WrapPanel Margin="15" HorizontalAlignment="Center">
                <Button Name="btnPrevious" Click="btnPrevious_Click" Width="55">Previous</Button>
                <Button Name="btnNext" Click="btnNext_Click" Margin="5,0" Width="55">Next</Button>
                <Button Name="btnBlue" Click="btnBlue_Click" Width="55">Blue</Button>
            </WrapPanel>

后台代码:

        private void btnPrevious_Click(object sender, RoutedEventArgs e)
        {
            if (cmbColors.SelectedIndex > 0)
                cmbColors.SelectedIndex = cmbColors.SelectedIndex - 1;
        }

        private void btnNext_Click(object sender, RoutedEventArgs e)
        {
            if (cmbColors.SelectedIndex < cmbColors.Items.Count - 1)
                cmbColors.SelectedIndex = cmbColors.SelectedIndex + 1;

        }

        private void btnBlue_Click(object sender, RoutedEventArgs e)
        {
            cmbColors.SelectedItem = typeof(Colors).GetProperty("Blue");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flysh05

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值