У меня есть прямоугольник и на моем MouseMove
события. Я хочу преобразовать прямоугольник всякий раз, когда ширина прямоугольника изменилась.Почему мой RenderTransform происходит только один раз?
У меня есть код Сорта, как это:
private Rectangle _rectangle;
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
_rectangle = GetTemplatedChild("PART_RangeRectangle") as Rectangle;
if(_rectangle != null)
{
_rectangle.MouseMove += new MouseEventHandler(_rectangle_MouseMove);
}
}
private void _rectangle_MouseMove(object sender, MouseEventArgs e)
{
if(e.LeftButton == MouseButtonState.Pressed && _rectangle != null)
{
_rectangle.Width += 50;
_rectangle.RenderTransform = new TranslateTransform(-10, 0);
}
}
Мои Xaml выглядит Сорта, как это:
<Grid>
<Canvas>
<Rectangle Name="PART_RangeRectangle" StrokeThickness="5"
RenderTransformOrigin="0.5, 0.5" />
<Canvas>
</Grid>
Когда я первый спуске MouseMove
событие происходит перевод, как и ожидалось. Но это происходит только один раз. Я попадаю в этот блок кода, и ширина прямоугольника обновляется хорошо, но мне еще предстоит выяснить, почему преобразование не обновляется.
для хихиканья я попробовать заменить RenderTransform с LayoutTransform, но ничего не произошло. –
Вы пробовали называть UpdateLayout ..? по ошибке – MethodMan
да У меня и не получилось :( –