Я задам этот вопрос со ссылкой на конкретный пример. Я использую ScaleX и ScaleY для реализации увеличения и уменьшения масштаба в Canvas, код XAML:
<Canvas>
<Canvas.LayoutTransform>
<ScaleTransform x:Name="scale" ScaleX="1" ScaleY="1" />
</Canvas.LayoutTransform>
</Canvas>
А потом в коде кнопки Zoom Out я пишу:
if (zoomFactor > -3)
{
scale.ScaleX /= 2;
scale.ScaleY /= 2;
zoomFactor--;
}
Здесь zoomFactor - это закрытая переменная, которая позволяет максимально увеличить количество нажатий на масштабирование.
Мои вопросы:
Есть ли способ сделать это в XAML, т. Е. Есть ли способ определить привязку или триггер или написать преобразователь таким образом, чтобы применялось условие, основанное на значении переменной, и значение переменной также обновляется?
Также, если значение zoomFactor равно -3 или 3, можно ли отключить кнопку уменьшения или увеличения в XAML? Или, проще говоря, можно ли отключить / включить кнопку в XAML на основе значения определенной переменной?
Если да, то как?