1

ListBoxAdam Nathan による「WPF 4 Unleashed」の第 10 章には、スクロール動作を制御する次の XAML の例が含まれています。

<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# の例はありません。私はいくつかの調査を行い、これを行うためのいくつかの回り道の方法を見つけました。私のために働いた2つのアプローチについては、このSOの質問を参照してください。ただし、これらのアプローチは一種のハックのようです。これらのプロパティの調整は、XAML では非常に簡単ですが、C# では扱いにくいものです。

これは単に、C# ではなく XAML からのみ使用することを意図した WPF の領域ですか? XAML/C# 間のこれらのプロパティの使いやすさの違いを説明できる人はいますか? それはWPFチームの見落としですか?

4

1 に答える 1

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);
于 2012-04-25T01:54:13.210 に答える