簡體   English   中英

帶有畫布和scrollview的Silverlight縮放區域

[英]Silverlight zoom area with canvas and scrollview

我有簡單的畫布與項目,我需要添加滾動視圖作為我的畫布的父級。 但是我在設定之后遇到了問題

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>

雖然Canvas的尺寸(150)小於包含滾動查看器(200),但是它被縮放以使其更大(300)。 LayoutTransformer將其所需大小報告為300,即畫布的變換后大小。 因此,ScrollViewer顯示滾動條以容納它。 沒有LayoutTransformer的好處,盡管有任何應用的RenderTransform, ScrollViewer只會看到Canvas的大小為150。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM