CompositeTransform僅用於Silverlight的?無論如何,我們可以在WPF或其他同等替代品中使用它嗎?只在Silverlight中使用CompositeTransform?
9
A
回答
13
有一個在WPF沒有CompositeTransform
但有一個TransformGroup
。因此,一個等同替換爲含有以該順序ScaleTransform
,SkewTransform
,RotateTransform
和TranslateTransform
一個TransformGroup
。
0
這裏是一個好得多的解決方案,如果你是肛門有關代碼清潔度:
http://www.singulink.com/CodeIndex/post/getting-rid-of-ugly-transformgroup-blocks-in-wpf
它很容易對眼睛和,因爲它只是返回的TransformGroup,你仍然可以使用混合設計師一起工作通過變換進行動畫處理!
<Rectangle Width="100" Height="100" Fill="LightGreen"
RenderTransform="{data:CompositeTransform ScaleX=2.5, ScaleY=1, SkewX=-60, Rotation=145}"
RenderTransformOrigin="0.5,0.5" />
實現:
public class CompositeTransformExtension : MarkupExtension
{
public double CenterX
{
get { return _scale.CenterX; }
set
{
_scale.CenterX = value;
_skew.CenterX = value;
_rotate.CenterX = value;
}
}
public double CenterY
{
get { return _scale.CenterY; }
set
{
_scale.CenterY = value;
_skew.CenterY = value;
_rotate.CenterY = value;
}
}
public double ScaleX
{
get { return _scale.ScaleX; }
set { _scale.ScaleX = value; }
}
public double ScaleY
{
get { return _scale.ScaleY; }
set { _scale.ScaleY = value; }
}
public double SkewX
{
get { return _skew.AngleX; }
set { _skew.AngleX = value; }
}
public double SkewY
{
get { return _skew.AngleY; }
set { _skew.AngleY = value; }
}
public double Rotation
{
get { return _rotate.Angle; }
set { _rotate.Angle = value; }
}
public double TranslateX
{
get { return _translate.X; }
set { _translate.X = value; }
}
public double TranslateY
{
get { return _translate.Y; }
set { _translate.Y = value; }
}
private ScaleTransform _scale = new ScaleTransform();
private SkewTransform _skew = new SkewTransform();
private RotateTransform _rotate = new RotateTransform();
private TranslateTransform _translate = new TranslateTransform();
public CompositeTransformExtension()
{
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
var group = new TransformGroup();
group.Children.Add(_scale);
group.Children.Add(_skew);
group.Children.Add(_rotate);
group.Children.Add(_translate);
return group;
}
}
相關問題
- 1. 只在Silverlight的DataGrid
- 2. 在使用Silverlight
- 3. 在Silverlight中使用.Net dll
- 4. 在Silverlight中使用FileOpenPicker
- 5. 在C#中使用Silverlight?
- 6. 在Silverlight中使用WCF CloseAsync
- 7. 在Silverlight中使用IsolatedStorageFile 4
- 8. 在asp.net中使用silverlight MVC
- 9. 在ODBC中使用Silverlight 4
- 10. 在Silverlight中使用IEditableObject
- 11. Silverlight中使用JavaScript
- 12. 如何使silverlight在Silverlight中成長?
- 13. 如何在Silverlight應用程序中使用非Silverlight DLL?
- 14. 如何在Silverlight 5中使DatePicker的Textbox組件只讀?
- 15. 在Silverlight中使問題列成爲只讀
- 16. 如何使Silverlight的DevExpress的DXGrid只讀?
- 17. Silverlight:在使用MVVM(silverlight)時不命名XAML中的控件?
- 18. 如何在SilverLight DataGrid中使用LoadingRowGroup
- 19. 在Silverlight 2.0中重新使用StaticResource
- 20. 如何在Silverlight XAML中使用QualifiedDouble值?
- 21. 何時在Silverlight中使用UserControl與Control?
- 22. 在SCORM內容中使用Silverlight
- 23. 在Silverlight中使用WCF Web服務
- 24. 如何在Silverlight 5中使用REST webservice?
- 25. 在Silverlight中使用ActiveX控件
- 26. 在Silverlight中使用SynchronizationContext引發事件
- 27. 在WCF和Silverlight中使用protobuf-net
- 28. 在Silverlight 4中使用JSON REST服務
- 29. 如何在Silverlight中使用gridview控件
- 30. 在Silverlight中使用綁定到XML
VAR反式=(CompositeTransform)Btn_showDetail.RenderTransform; 如果(Trans.Rotation> 0){ VisualStateManager.GoToState(此, 「隱藏」,TRUE); } – 2014-01-22 08:58:52
你覺得如果有人實現了自己的WPF它的工作? (或反編譯並使用Silverlight中的那個?) – 2015-07-16 14:21:43