进行用户控制时,更新控件特定部分的正确方法是什么?
假设我有一个名为CornerIcon的Image属性,用户将新图像设置为此属性。我是否需要将 onlyUpdateCornerIcon 作为标志才能更新该部分?或者只是在没有标志检查的情况下执行onPaint(没有标记在没有足够内存且导致更新行为迟缓的设备上很昂贵)
虽然如果控制很复杂,那么标志似乎很难跟踪事情。例如,如果用户更改高度,我将需要设置高度更改标志和 onlyUpdateCornerIcon ,因为它们相互依赖以正确显示控件。由于控件变得复杂,我最终为一些道具设置了5或6个标志......围绕这个解决方案?
Image CornerIcon{
get{return cornerIcon;}
set{
cornerIcon = value;
onlyUpdateCornerIcon = true;
Invalidate();
}
}
onPaint(..){
if(onlyUpdateCornerIcon){
//updateImageHere
return;
}
if(onlyUpdateText){
//update Text here
return;
}
//Paint all other props here
}