0

画面の解像度が変更されたときにツリー ビュー コントロールの高さを変更する方法を教えてください。

このコードを見てください:

<TreeView  Name="treeView1" Height="150" VerticalAlignment="Top">
    <TreeViewItem Header="Root" IsExpanded="True">
        <TreeViewItem Header="Item 1"></TreeViewItem>
        <TreeViewItem Header="Item 2"></TreeViewItem>
        <TreeViewItem Header="Item 3"></TreeViewItem>
        <TreeViewItem Header="Item 4"></TreeViewItem>
        <TreeViewItem Header="Item 5"></TreeViewItem>
        <TreeViewItem Header="Item 6"></TreeViewItem>
        <TreeViewItem Header="Item 7"></TreeViewItem>
        <TreeViewItem Header="Item 8"></TreeViewItem>
        <TreeViewItem Header="Item 9"></TreeViewItem>
        <TreeViewItem Header="Item 10"></TreeViewItem>
        <TreeViewItem Header="Item 11"></TreeViewItem>
        <TreeViewItem Header="Item 12"></TreeViewItem>
        <TreeViewItem Header="Item 13"></TreeViewItem>
        <TreeViewItem Header="Item 14"></TreeViewItem>
        <TreeViewItem Header="Item 15"></TreeViewItem>
        <TreeViewItem Header="Item 16"></TreeViewItem>
        <TreeViewItem Header="Item 17"></TreeViewItem>
        <TreeViewItem Header="Item 18"></TreeViewItem>
        <TreeViewItem Header="Item 19"></TreeViewItem>
        <TreeViewItem Header="Item 20"></TreeViewItem>
        <TreeViewItem Header="Item 21"></TreeViewItem>
        <TreeViewItem Header="Item 22"></TreeViewItem>
        <TreeViewItem Header="Item 23"></TreeViewItem>
        <TreeViewItem Header="Item 24"></TreeViewItem>
        <TreeViewItem Header="Item 24"></TreeViewItem>
    </TreeViewItem>
</TreeView>

一部の画面解像度では、すべてのうなずきが表示され、一部の解像度ではスクロール バーが表示されます。スクロールバーなしですべてのノードを表示したい。

4

1 に答える 1

0

SystemEvents.DisplaySettingsChangedイベントを使用して、次のようなことを試すことができます。

public partial class Window1 : Window
{
    public static EventHandler HandleDisplaySettingsChanged = 
        new EventHandler(SystemEvents_DisplaySettingsChanged);

    public Window1()
    {
        InitializeComponent();
        Microsoft.Win32.SystemEvents.DisplaySettingsChanged += HandleDisplaySettingsChanged;
    }

    public void Close()
    {
        SystemEvents.DisplaySettingsChanged -= HandleDisplaySettingsChanged;
    }

    public static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
    {
        Console.WriteLine("display settings changed");

        // change treeview size as you think what is appropriate here...
    }
}
于 2012-06-16T09:02:59.380 に答える