2012-04-24 3 views
1

глава 10 «WPF 4 Unleashed» Адам Натан включает этот XAML пример управления ListBox прокрутки поведения:Управление ListBox прокрутки поведение

<Window x:Class="NathanControllingScrollingBehavior.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 

    <ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
      ScrollViewer.VerticalScrollBarVisibility="Disabled" 
      ScrollViewer.CanContentScroll="False" 
      ScrollViewer.IsDeferredScrollingEnabled="True"> 
     ... 
    </ListBox> 

</Window> 

Там не является эквивалентом C#, например, в книге. Я провел некоторое исследование и нашел несколько способов обхода круга. См. this SO question для двух подходов, которые работали для меня. Однако эти подходы кажутся хакерскими. Настройка этих свойств довольно проста в XAML, но неудобно с C#.

Это просто область WPF, предназначенная для использования только с XAML, а не с C#? Может ли кто-нибудь объяснить несоответствие в простоте использования этих свойств между XAML/C#? Это просто контроль над командой WPF?

ответ

2

Вы можете сделать это таким образом.

ListBox listBox1 = new ListBox(); 

listBox1.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, 
ScrollBarVisibility.Disabled); 

listBox1.SetValue(ScrollViewer.VerticalScrollBarVisibilityProperty, 
ScrollBarVisibility.Disabled); 

listBox1.SetValue(ScrollViewer.CanContentScrollProperty, false); 

listBox1.SetValue(ScrollViewer.IsDeferredScrollingEnabledProperty, true); 
+0

Спасибо Nikhil! Это потрясающе. – dharmatech

Смежные вопросы