Iev*_*ida 3 .net c# silverlight
我有简单的画布与项目,我需要添加滚动视图作为我的画布的父级.但是我在设定之后遇到了问题
canvas.RenderTransform=new ScaleTransform(){...}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
虽然其Canvas尺寸(150)小于容纳滚动观察器(200),但是它被缩放以使其更大(300).该LayoutTransformer报告其所需的尺寸为300,变换后的画布的大小.因此,ScrollViewer显示滚动条以容纳它.如果没有的益处LayoutTransformer的ScrollViewer只能看到画布为具有大小150,尽管任何适用的RenderTransform.
| 归档时间: |
|
| 查看次数: |
2732 次 |
| 最近记录: |