2012-06-16 3 views
0

Пожалуйста, дайте мне знать, как я могу изменить высоту управления представлением дерева при изменении разрешения экрана?Размер древовидной структуры в wpf

смотрите этот код:

<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> 

в некоторых разрешениях экрана я могу видеть все nodse и в некоторых разрешениях я вижу полосу прокрутки. Я хочу видеть все узлы без полосы прокрутки.

+0

Вы не сможете сделать это при изменении * разрешение * - размер пикселя физически больше в более низком разрешении, так что вы имеют меньше точек в одном и том же физическом окне просмотра - вот почему вы получаете полосу прокрутки. – slugster

ответ

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... 
    } 
}