这是过去几天一直存在的问题。我在Line
和Canvas
上有10000多个Slider
个对象,用于缩放画布以创建缩放效果。
一切都很好,性能也很棒。
唯一困扰我的是StrokeThickness
的{{1}}也会缩放。我尝试将Line
Bind
移动到滑块的倒数值,这样每当我移动滑块时,我都会获得均匀的厚度。这有效但却大大降低了性能。
还有其他方法适合这种情况。无论我在多大程度上缩放画布(比如在CAD程序中),我都希望有一个零宽度的线条粗细。
答案 0 :(得分:1)
对于您想要达到的效果,覆盖StrokeThickness
并不构成任何意义,因为即使更改了ScaleTransform
,它的值实际上也保持不变。 / p>
您尝试过的方法 - Bind
StrokeThickness
与滑块值的倒数 - 似乎是最合理的方法。要提高性能,不要将StrokeThickness
直接设置为与滑块值相反,而是将其设置为视图模型上的另一个属性。
然后,在滑动完成的情况下,将该属性的值设置为StrokeThickness
的倒数。
示例 -
private void OnSlidingComplete(object sender, EventArgs e)
{
LineStrokeThickness = GetInverseOfZoomValue();
}
我知道这不是一个解决方案,而是一种解决方法。