c# - How can I prevent Silverlight from converting TransformGroup to MatrixTransform? -
i have created transformgroup multiple transforms , assigned image's rendertransform property:
transformgroup grouping = new transformgroup(); scaletransform st = new scaletransform(); group.children.add(st); translatetransform tt = new translatetransform(); group.children.add(tt); image.rendertransform = group; if want individual transform grouping in wpf, can this:
translatetransform tt = (translatetransform)((transformgroup)image.rendertransform).children.first(tr => tr translatetransform); however, in silverlight, transformgroup apparently implicitly converted matrixtransform, because running above code gives error:
unable cast object of type 'system.windows.media.matrixtransform' type 'system.windows.media.transformgroup'.
is there way avoid conversion transformgroup matrixtransform? if not, how can recover individual transforms matrixtransform?
d'oh! had accidentally tried utilize transformgroup before assigning it, image.rendertransform still set default of matrixtransform.
in case needed utilize matrixtransform perform scaletransform followed translatetransform, given these transforms:
scaletransform st = new scaletransform(); translatetransform tt = new translatetransform(); the next 2 options should provide equivalent results:
using transformgroup:
transformgroup grouping = new transformgroup(); group.children.add(st); group.children.add(tt); image.rendertransform = group; using matrixtransform:
matrixtransform mt = new matrixtransform { matrix = new matrix { m11 = st.scalex, m22 = st.scaley, offsetx = tt.x, offsety = tt.y } }; image.rendertransform = mt; c# silverlight
No comments:
Post a Comment