c# – 带有画布和滚动视图的Silverlight缩放区域
发布时间:2020-12-16 01:41:12 所属栏目:百科 来源:网络整理
导读:我有简单的画布与项目,我需要添加滚动视图作为我的画布的父级. 但是我在设定之后遇到了问题 canvas.RenderTransform=new ScaleTransform(){...} Scroolbars没有出现或工作不正确. 对任何信息都会感到高兴. 解决方法 渲染变换在UI渲染过程中发生得更晚.它最终
我有简单的画布与项目,我需要添加滚动视图作为我的画布的父级.
但是我在设定之后遇到了问题 canvas.RenderTransform=new ScaleTransform(){...} Scroolbars没有出现或工作不正确. 解决方法
渲染变换在UI渲染过程中发生得更晚.它最终对控件渲染执行矩阵变换.滚动查看器将完全不知道此变换,其滚动条将基于原始Canvas的未变换大小.
silverlight工具包包含一个LayoutTransformer控件.此控件将变换应用于其内容,作为布局过程的一部分,并将变换后的大小报告为其所需的大小. 考虑一下: – <ScrollViewer Width="200" Height="200" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> <toolkit:LayoutTransformer> <toolkit:LayoutTransformer.LayoutTransform> <ScaleTransform ScaleX="2" ScaleY="2" /> </toolkit:LayoutTransformer.LayoutTransform> <Canvas Width="150" Height="150" Background="Aquamarine"> <Rectangle Fill="Blue" Canvas.Top="10" Canvas.Left="10" Width="30" Height="30" /> </Canvas> </toolkit:LayoutTransformer> </ScrollViewer> 虽然画布的尺寸(150)小于包含滚动查看器(200),但是它被缩放以使其更大(300). LayoutTransformer将其所需大小报告为300,即画布的变换后大小.因此,ScrollViewer显示滚动条以容纳它.没有LayoutTransformer的好处,尽管有任何应用的RenderTransform,ScrollViewer只会看到Canvas的大小为150. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |