2011-03-22 25 views
7

nasıl kaydırılabilir olmak Stretch="UniformToFill"ile WPF Viewbox içine konur içeriği yapabiliriz? Örneğinkaydırılabilir içerik

:

<Grid Height="500" Width="1000" > 
    <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" > 
     <Viewbox Stretch="UniformToFill"> 
     ...... 

     </Viewbox> 
    </ScrollViewer> 
</Grid> 

içeriği, kendi doğal boy oranını muhafaza ederken hedef boyutlarına doldurmak için boyutlandırılır. Hedefin en boy oranı kaynaktan farklıysa, kaynak içeriği hedef boyutlara sığacak şekilde kırpılır.
Bu yüzden, ScrollViewer kullanmayı, kaynak içeriğin kırpılmış olduğu alanlara kaydırmayı denedim, ancak Kaydırma Çubukları görünür ancak devre dışı bırakıldı.

ClipToBounds="False"'u denedim ancak yardımcı olmadı.

+0

Bir görüntüleyiciyi bir scrollviewer'a koymak oldukça sıradışı. Biri içeriği belirli bir alana sığacak şekilde yeniden boyutlandırır, diğeri ise kullanıcının alan için fazla büyük olan içeriği görüntüleyebilmesini sağlar. belki geri çekilmeli ve başarmaya çalıştığın şeyi tarif etmelisin? –

+1

@Robert Levy Viewbox içeriği öngörülemeyen sayıda başka kontrollerden oluşur. İçeriği yukarı ve aşağı ölçeklemek için ScriptViewer'a ve bu içeriğe ölçeklendiğinde o içeriğe ulaşmak için Viewbox'a ihtiyaç duyulur. – rem

cevap

15

ViewBox, içeriğini kapladığı boyutlara göre yeniden boyutlandırır. ScrollViewer, içeriğinin oluşturulması için sonsuz genişlik/yükseklik verir. Böylece, bir ViewBox'ı bir ScrollViewer içine koyduğunuzda, ViewBox, germek için "dünyanın tüm alanını" sahip olduğunu düşünüyor.

Ayrıca, ViewBox, içeriği genişletmek için render dönüşümleri kullanır; bu, ScrollViewer öğenizin içeriğin son boyutunu asla bilmeyeceği anlamına gelir.

ScrollViewer'ınızı çalıştırmak için ViewBox'ta bir Genişlik/Yükseklik koymanız gerekir. Ne kadar yer işgal ettiğini bilmek zorunda.

+1

Teşekkürler, yardımsever cevap! +1 – rem

İlgili konular