2013-12-16 21 views
6

Ağaç görünümünde benzer özelliklere sahip web sitelerini tanıyanlar var mı? Microsoft web sitesinin indirme bölümü gibi. Artı düğmesine basarsınız, genişler ve altındaki her şey daha aşağıya doğru hareket eder. Eksi düğmesine basarsınız ve bu bloktaki her şey çöker ve aşağıdaki içerik geri kayar.Web sayfasındaki WPF'de nasıl genişleme ve daraltma

Verilen C#, HTML ve CSS gibi bir şey değildir, ancak sadece bunu bir WPF uygulamasında yapmanın mümkün olup olmadığını öğrenmek istedim.

Şu anda araç kutusunda bulunan ağaç görünümü yalnızca metnin uygulanmasına izin veriyor gibi görünüyor. Etiketler veya metin kutuları gibi ek nesneler için izin vermez.

EXPANDER'ı keşfettim ve içeriğinin genişletilmesi ve daraltılmasıyla ilgili iyi bir iş çıkarıyor, ancak altındaki nesneleri yukarı çekmeye ya da geri çekmeye yetiyor. İşte benim istediğim senaryoya bir örnek.

exibitA exibitB

Ben yardımcı olur microsoft's download page olurdu gidiyorum ne bir örnek. Genişletme ve daraltma düğmeleri nasıl çalışır?

Bunu yapmak için herhangi bir yolu var mı?

+2

Bir Expander ne kullanırsam kullanacağım, tam olarak ne demek istediğin, "arkasındaki nesneleri yukarı çekmeye ya da geri çekmeye yetmiyor" mu demek istiyorsun? –

+1

WPF TreeView'da istediğiniz herhangi bir nesne türünü görüntüleyebilirsiniz. Bu makale çok iyi: http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode – Baldrick

+0

Çok iyi gizlediğini ve içeriğini görüntülediğini kastediyorum ama Bunun tersi veya arka tarafı olan metni itmesi mümkün görünmüyor. TreeView için – Offer

cevap

14

Expander, Microsoft'un karşıdan yükleme sayfasının kullanma biçimini kullanma örneğidir. 'un Height öğesinin Auto olarak ayarlandığını unutmayın, aksi halde Expander, IsExpanded yanlış olarak ayarlandığında çökmez.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <Expander IsExpanded="True"> 
     <Border BorderBrush="Red" BorderThickness="2"> 
      <TextBlock Height="50" Text="Hello" /> 
     </Border> 
    </Expander> 
    <Expander Grid.Row="1" IsExpanded="True"> 
     <Border BorderBrush="Green" BorderThickness="2"> 
      <TextBlock Height="50" Text="World" /> 
     </Border> 
    </Expander> 
</Grid> 
1

normal ağaç görünümünde sorduğunuz şeyi yapabilirsiniz.

bu harika kod proje açıklama görmek:

http://www.codeproject.com/Articles/124644/Basic-Understanding-of-Tree-View-in-WPF

+1

Teşekkürler Nahum. Makalenin yeterince iyi çalıştığını doğrulayabilirim. Yine de kredi verdim, Onun çözümü benim kodumun kökünü sökmek zorunda olmadığım anlamına geliyordu ve neredeyse tasarımda yeniden başlıyordu ama ben olumluyum. Projemi bitirmeden önce bunu çok kullanacağım. Tekrar teşekkürler. – Offer

0

WPF Expander bileşeni tam olarak ne istiyorsun ve uygun bir panelde barındırılan eğer diğer kontrolünü aşağı itmek. Örneğin, StackPanel kullanmayı deneyin.

İlgili konular