问题描述
用wpf开发即时通讯软件,需要实现类似qq聊天窗口合并功能。现实现方法是做一个窗口,窗口为listview列表,列表中为已打开的聊天窗口。右侧为聊天窗口,位置与列表窗口绑定。高手指点一下,这样实现是否合适?或者还有其他的实现方法
解决方案
解决方案二:
这样做是可以的。
解决方案三:
引用1楼duanzi_peng的回复:
这样做是可以的。
这样有个问题,列表窗口和聊天窗口会出现夹心饼干的形式。同时点击列表实现切换聊天窗口的时候屏幕会出现闪烁的情况用了listview.selectionchanged事件和listviewitem.selected事件,好像都不能解决
解决方案四:
引用2楼wo329470347的回复:
Quote: 引用1楼duanzi_peng的回复:
这样做是可以的。这样有个问题,列表窗口和聊天窗口会出现夹心饼干的形式。同时点击列表实现切换聊天窗口的时候屏幕会出现闪烁的情况用了listview.selectionchanged事件和listviewitem.selected事件,好像都不能解决
界面的构造,以(用户)控件为基础。是控件的组合,而不是什么窗口组合。
解决方案五:
要重复使用UI组件,那么你应该主要是去开发用户控件。然后必要时,一个用户控件里边包括其它多个用户控件。然后当你需要什么窗口,把用户控件直接拖入窗口即可。代码应该主要都写在用户控件中,而不是在窗口中。扔掉窗口,那些“饼干”就不存在了。
解决方案六:
引用4楼sp1234的回复:
要重复使用UI组件,那么你应该主要是去开发用户控件。然后必要时,一个用户控件里边包括其它多个用户控件。然后当你需要什么窗口,把用户控件直接拖入窗口即可。代码应该主要都写在用户控件中,而不是在窗口中。扔掉窗口,那些“饼干”就不存在了。
想过用UserControl的形式来实现,但是对现有的项目来说,将每个个人的聊天窗口作为usercontrol来做的话,工作量更大。并且工程中好多引用都会出现错误
解决方案七:
引用2楼wo329470347的回复:
Quote: 引用1楼duanzi_peng的回复:
这样做是可以的。这样有个问题,列表窗口和聊天窗口会出现夹心饼干的形式。同时点击列表实现切换聊天窗口的时候屏幕会出现闪烁的情况用了listview.selectionchanged事件和listviewitem.selected事件,好像都不能解决
sp1234说的没错。指定用户控件,使用ContentControl(内容控件),来切换不同的用户。如果使用内容控件,闪烁的问题也会解决的。
解决方案八:
引用6楼duanzi_peng的回复:
Quote: 引用2楼wo329470347的回复:
Quote: 引用1楼duanzi_peng的回复:
这样做是可以的。这样有个问题,列表窗口和聊天窗口会出现夹心饼干的形式。同时点击列表实现切换聊天窗口的时候屏幕会出现闪烁的情况用了listview.selectionchanged事件和listviewitem.selected事件,好像都不能解决
sp1234说的没错。指定用户控件,使用ContentControl(内容控件),来切换不同的用户。如果使用内容控件,闪烁的问题也会解决的。
qq的合并窗口之后,工具栏其实每个窗口还是分开的,思想应该是保证聊天窗口只有一个为normal,其他都为最小化,