我一直在寻找为视觉对象绘制选择指标的替代方法(如选定的边,线等),不使用ControlPaint.DrawReversibleFrame
和相关的XOR方法。原因是不需要的XOR-ing“神器”,可逆性不适用于位图,无法控制实际的视觉外观和缓慢。
另一方面,如果用户决定要取消选择一个或两个对象,我想避免重绘整个场景(实际映射),因为重绘可能非常昂贵。
因此,我能看到的唯一选择是直接在Bitmap
上实现一些基本绘图逻辑,但在更改之前使用存储像素的先前内容。然后(在理论上)如果用户选择取消选择该边缘,我将能够重新应用所选边缘矩形的旧内容。
我的问题是你是否认为这是一个好主意,或者你是否看到了我的问题的其他替代方案(在GDI +中)?
提前致谢
答案 0 :(得分:1)
如果选择指示器刚刚绘制在未选定对象的顶部,则可以使用两个位图,在背景上绘制所有未选中的对象,在另一个上绘制选择指示器,并在屏幕上绘制它们。 /> 否则,您可以这样做,除了您渲染所选对象而不仅仅是指示符。
答案 1 :(得分:0)
仅将“感兴趣的”矩形存储在屏幕外缓冲区中。当焦点丢失时重新粉刷。 。 。或者,如果您可以重新绘制通常基于内存数据显示的部分,那么您应该没问题。否则你似乎有它的主旨。