我是WP7/Silverlight/C#編程的新手,我正在製作一個簡單的放大應用程序來處理一些事情。爲了提供「放大」和「縮小」功能,我成功地在UIElement上使用了包含視頻饋送的ScaleTransform。將多個變換應用到UI元素
由於我進一步開發了應用程序,我意識到我希望在應用程序的使用過程中適應方向的變化,並確保視頻饋送作出相應響應(該應用程序已在橫向模式下修復,但用戶可能希望'由於某種原因翻過手機)。爲了解決這個問題,我創建並應用了一個RotateTransform並鏈接到了OrientationChanged事件中。
所有這些工作正常,但當我嘗試縮放(使用ScaleTransform)後,我已經改變了方向,然後視頻輸入放大,但翻轉反饋到'默認'的方向,因此顯示顛倒。
鑑於此,我認爲我需要在放大時應用這兩種轉換,所以我創建了一個TransformGroup並向其添加了ScaleTransform和RotateTransform。但是縮放功能不適用於此,並且沒有任何轉換似乎應用。
嘗試應用TransformGroup時是否有其他人遇到問題?
我已經在下面提供了一個縮放和定向代碼的片段供參考 - 如果我正在做很長時間的事情,但是請記住我還在學習,請事先道歉。
任何幫助,將不勝感激。 在此先感謝, 克雷格。
UIElement videocontainer;
RotateTransform rotatetransform = new RotateTransform();
void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
switch (Orientation)
{
case PageOrientation.LandscapeLeft:
rotatetransform.Angle = 0;
break;
default:
rotatetransform.Angle = 180;
break;
}
rotatetransform.CenterX = 320;
rotatetransform.CenterY = 240;
videocontainer.RenderTransform = rotatetransform;
private void ZoomIn_Click(object sender, EventArgs e)
{
if (zoom < 7)
{
switch (Orientation)
{
case PageOrientation.LandscapeLeft:
ScaleTransform myscaletransform1 = new ScaleTransform();
myscaletransform1.ScaleX = myscaletransform1.ScaleX * 1.25;
myscaletransform1.ScaleY = myscaletransform1.ScaleY * 1.25;
myscaletransform1.CenterX = 320;
myscaletransform1.CenterY = 240;
TransformGroup zoomintranformgroup1 = new TransformGroup();
zoomintranformgroup1.Children.Add(myscaletransform1);
zoomintranformgroup1.Children.Add(rotatetransform);
videocontainer.RenderTransform = zoomintransformgroup1;
zoom++;
break;
default:
ScaleTransform myscaletransform2 = new ScaleTransform();
myscaletransform2.ScaleX = myscaletransform2.ScaleX * 1.25;
myscaletransform2.ScaleY = myscaletransform2.ScaleY * 1.25;
myscaletransform2.CenterX = 320;
myscaletransform2.CenterY = 240;
TransformGroup zoomintranformgroup2 = new TransformGroup();
zoomintranformgroup2.Children.Add(myscaletransform2);
zoomintranformgroup2.Children.Add(rotatetransform);
videocontainer.RenderTransform = zoomintransformgroup2;
zoom++;
break;
}
}
else
{
return;
}
}
Fanstastic這個偉大的工作。非常感謝你!。 – Craig 2012-07-26 08:51:04