最近在写一点WPF的控件,说一下需求吧。

产品提出需要设计可折叠的控件,需要的时候点开,展示内容;不需要的时候,点击收起内容。其实WPF里面toolbox有expander这个控件,但是又来了个奇葩的需求:要求一次只能展开一个expander,类似radiobutton的特性,“可以且只能”选中一项。在网上搜了很多资料,不得不佩服Windows是生产力工具这句话。。。

例如:贴吧里面就提出了一种方法,让RadioButton集成Expander的模板,同时绑定RadioButton的IsChecked和Expander的IsExpanded,RadioButton的content和Expander的content(不得不佩服Windows的开发思路)。

F5运行之后,既有了Expander的特性,又兼具RadioButton的group功能,but,Expander的header没了……

有人提出说将Expander header加入到RadioButton中,说的不是很详细,然后我也是刚入门,捣腾了半天也还是不行。

接着找到了一篇博客WPF简易手风琴完美地满足了需求,而且作者提出了两种思路:Expander+listbox和上面贴吧提出的一种方法。第一种略显复杂,第二种作者也只是提了下思路,具体实现没有写出来。我不想用第一种的方法,感觉代码量太大,想着能定义好模板,然后直接在xaml里面添加控件是最方便的。搜了一晚上的Stack Overflow也没有结果。今天早上突然想起来这篇博文里面提到Tag这个属性,于是就想着把Expander的header和RadioButton的Tag绑定在一起,设置RadioButton的Tag,然后再运行,果然,Tag属性绑定到Expander的Header上了。搞定……

后面还需要多学习下Template和Style,感觉很深奥,需要慢慢体会

WPF-多个Expander联动相关推荐

  1. expander菜单控件_[WPF 自定义控件]自定义Expander

    1. 前言 上一篇文章介绍了使用Resizer实现Expander简单的动画效果,运行效果也还好,不过只有展开/折叠而缺少了淡入/淡出的动画(毕竟Resizer模仿Expander只是附带的功能).这 ...

  2. WPF Expander更改样式

    WPF 控件Expander其实是由ToggleButton+ContentPresenter 组成的 Expander样式代码: <Style x:Key="ExpanderStyl ...

  3. WPF实现图片手风琴动态切换效果

    实现效果如下: 思路:利用WPF自带Expander控件实现点击展开折叠效果,上层采用ListBox来加载图片数据源. 参考博文:WPF 简易手风琴 (ListBox+Expander) 步骤: 1. ...

  4. [UWP]理解及扩展Expander

    1. 前言 最近在自定义Expander的样式,顺便看了看它的源码. Expander控件是一个ContentControl,它通过IsExpanded属性或者通过点击Header中的ToggleBu ...

  5. WPF中Expander与ListBox(ItemsControl)嵌套中的问题

    原文:WPF中Expander与ListBox(ItemsControl)嵌套中的问题 1. 当ListBox放在Expander中时,为了要实现实时更新数据的效果,这里使用了 ObservableC ...

  6. 【转】WPF Expander 收缩不占空间的用法

    WPF 中 Expander 的,默认折叠状态,只是把内容隐藏,实际是还是占有空间的.按照下面的做法,可以是下面的控件,位置移动. <StackPanel >             &l ...

  7. WPF仿网易云音乐系列(一、左侧菜单栏:Expander+RadioButton)

    WPF仿网易云音乐系列(一.左侧菜单栏:Expander+RadioButton) 原文:WPF仿网易云音乐系列(一.左侧菜单栏:Expander+RadioButton) 1.简介 上一篇咱们说到, ...

  8. [WPF自定义控件库]自定义Expander

    [WPF自定义控件库]自定义Expander 原文:[WPF自定义控件库]自定义Expander 1. 前言 上一篇文章介绍了使用Resizer实现Expander简单的动画效果,运行效果也还好,不过 ...

  9. WPF基础五:UI③带标题内容控件Expander

    HeaderedContentControl 为包含单项内容并具有标头的所有控件提供基实现. HeaderedContentControl 从 ContentControl 继承 Content 属性 ...

最新文章

  1. 如何把 XML 文件显示为 HTML 表格
  2. 运行时异常 检查时异常
  3. Spring Security实现登录权限控制,记住我等功能
  4. sqlite+php+函数大全,PHP SQLite SQLite 函数_编程学问网
  5. 算法与数据结构 -- 排序和查找(五)
  6. 201117阶段二SQLite数据库
  7. deprecated conversion from string constant to ‘char*’
  8. 剑指Offer的学习笔记(C#篇)-- 数组中重复的数字
  9. C++_选择结构_循环结构_for循环_敲桌子案例_嵌套循环_乘法口诀案例_跳转语句break---C++语言工作笔记018
  10. jenkins ssh 部署 Can't connect to server 错误
  11. 每个广告组放多少个关键字合适?
  12. 告别晦涩难懂的物理,《张朝阳的物理课》了解一下
  13. Maven 部署私服依赖
  14. IT十年人生过客-七-眉毛与恶名
  15. 详解浅拷贝,深拷贝及实现方法
  16. 【LOJ6240】仙人掌
  17. 二手交易平台/二手交易系统/闲置物品交易系统
  18. word 要求五十行 50行
  19. 如何将控制台程序发布为服务
  20. SyntaxError: invalid syntax都可能是是什么错!!!(持续更新)

热门文章

  1. Opencv训练自己分类器
  2. linux移动一个桌面的文件夹,linux实用命令之如何移动文件夹及文件下
  3. 凯悦和九龙仓宣布在长沙打造全新柏悦酒店;万豪旗下24家餐厅入围2022黑珍珠餐厅指南 | 全球旅报...
  4. python中配置文件使用
  5. shell看服务器版本信息,xshell查看服务器配置
  6. Windows RPC 远程过程调用
  7. 回归 - 最小二乘,岭回归,lasso
  8. 2018-1-11-【转】PHP简洁之道
  9. 纺织行业O2O的技术方案
  10. SpringSession系列-sessionId解析和Cookie读写策略