WPF 怎样实现单选列表控件?

简介:

WPF没有像ASP.NET提供一个RadioButtonList的控件。幸运的是,我们可以利用WPF样式和模板的强大功能,用纯粹的XAML代码实现这个功能

<Window x:Class= "ControlTest2.ListBoxTest2"
     xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:s= "clr-namespace:System;assembly=mscorlib" >
     <Window.Resources>
         <x:Array Type= "{x:Type s:String}"  x:Key= "data" >
             <s:String>Option1</s:String>
             <s:String>Option2</s:String>
             <s:String>Option3</s:String>
         </x:Array>
     </Window.Resources>
     <StackPanel DataContext= "{StaticResource data}" >
       <TextBlock Margin= "5" >
        <TextBlock Text= "Current Option:" />
        <TextBlock Text= "{Binding /}" />
     </TextBlock>
       <ListBox
        ItemsSource= "{Binding}"
        IsSynchronizedWithCurrentItem= "True"
        Width= "240"
        Height= "60"
        HorizontalAlignment= "Left" >
             <ListBox.ItemContainerStyle>
                 <Style TargetType= "{x:Type ListBoxItem}" >
                     <Setter Property= "Template" >
                         <Setter.Value>
                             <ControlTemplate TargetType= "{x:Type ListBoxItem}" >
                                 <RadioButton
                                     IsChecked= "{Binding Path=IsSelected, RelativeSource={RelativeSource TemplatedParent}}"
                                     Content= "{TemplateBinding Content}" />
                             </ControlTemplate>
                         </Setter.Value>
                     </Setter>
                 </Style>
             </ListBox.ItemContainerStyle>
         </ListBox>
         <!--这种方法跟简单-->
          <StackPanel>
             <RadioButton GroupName= "x" >Radio1</RadioButton>
            <RadioButton GroupName= "x" >Radio2</RadioButton>
            <RadioButton GroupName= "x" >Radio3</RadioButton>
         </StackPanel>
     </StackPanel>  
</Window>

  参考:http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/857fdaa9-5c67-4e0a-a1fd-037f72577c76



本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/11/14/2248381.html,如需转载请自行联系原作者

目录
相关文章
|
4月前
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
|
4月前
|
C# 开发者 Windows
一款基于Fluent设计风格、现代化的WPF UI控件库
一款基于Fluent设计风格、现代化的WPF UI控件库
113 1
|
4月前
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
208 1
|
4月前
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
151 0
|
4月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
83 0
|
4月前
|
开发框架 前端开发 JavaScript
WPF应用开发之控件动态内容展示
WPF应用开发之控件动态内容展示
|
4月前
|
前端开发 C#
wpfui:一个开源免费具有现代化设计趋势的WPF控件库
wpfui:一个开源免费具有现代化设计趋势的WPF控件库
164 0
|
4月前
|
开发框架 前端开发 C#
使用WPF开发自定义用户控件,以及实现相关自定义事件的处理
使用WPF开发自定义用户控件,以及实现相关自定义事件的处理
|
4月前
|
开发框架 前端开发 JavaScript
在WPF应用中使用GongSolutions.WPF.DragDrop实现列表集合控件的拖动处理
在WPF应用中使用GongSolutions.WPF.DragDrop实现列表集合控件的拖动处理
|
7月前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
398 0