我目前正在制作一个稍微复杂的装饰师。当用户缩放时,这个将仅在一个维度上变换。不幸的是,这对它周围漂亮的1px发线边界造成了严重破坏(我希望它仍然是一个很好的发际边界 - 即使在转型的维度上)。
这是我对问题的诊断:
假设我将缩放变换应用于装饰的UIElement。 WPF然后调用以下
最后两个似乎对我不利。如果我正确读取此权限,则意味着,当我覆盖GetDesiredTransform时,它只是太少而不能延迟。是的,我确实可以扩展/翻译/倾斜我的装饰,但问题在于:如果我想如上所述做什么,即只在一个维度上缩放并在装饰者上保持1px细线边界?好吧,我不能,我可以吗?
如果我要使用装饰品,我觉得我必须将它们拆分成单独的装饰品 - 那些将要扩展的装饰品和那些不合适的装饰品。好像很多工作。我在这里的通话顺序上错过了一些东西吗?我想我可以在视觉树下一直触发OnRender到叶子,但这看起来像是大规模的过度杀伤。
答案 0 :(得分:0)
您可以将边框与装饰者的内容分开。
让内容转换,不涉及边界。
你能发布你的装饰模板的样子吗?