我有一個矩形,並且在我的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
預期發生轉換。但是這隻發生一次。我正在進入該代碼塊和矩形的寬度更新正常,但我還沒有找出爲什麼變換沒有更新。
的笑聲我曾嘗試與LayoutTransform但沒有更換的RenderTransform發生。 – 2012-02-08 20:30:21
你有沒有試過調用UpdateLayout ..?偶然 – MethodMan 2012-02-08 20:42:12
是的,我有和沒有運氣:( – 2012-02-08 20:43:42