Wireshark のものとまったく同じネットワーク診断ページを作成しようとしています。
DataGrid (送信/受信パケットをテーブルに表示するため)、TreeView (折りたたみ/展開機能を使用してパケットに関する詳細情報を表示するため)、および RichTextBox (生データを表示するため) を順番に持っています。
現在持っているXAMLは次のとおりです。
<UserControl x:Class="DDCUI.CommDiagnosisWPFCtrl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" Height="950" Width="300">
<DockPanel LastChildFill="True">
<DataGrid DockPanel.Dock="Top" SelectionMode="Single" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" MaxHeight="300" AutoGenerateColumns="False" Name="DGComm" CanUserResizeColumns="True" IsReadOnly="True" SelectedCellsChanged="DGComm_SelectedCellsChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="No." Binding="{Binding Number}" Width="0.1*"/>
<DataGridTextColumn Header="Time" Binding="{Binding Time}" Width="0.1*" />
<DataGridTextColumn Header="Protocol" Binding="{Binding Protocol}" Width="0.15*" />
<DataGridTextColumn Header="Source" Binding="{Binding Source}" Width="0.15*" />
<DataGridTextColumn Header="Destination" Binding="{Binding Destination}" Width="0.15*" />
<DataGridTextColumn Header="Data" Binding="{Binding Data}" Width="0.5*" />
</DataGrid.Columns>
</DataGrid>
<RichTextBox DockPanel.Dock="Bottom" MinHeight ="100" Name="RtbHexCode" IsReadOnly="True" />
<TreeView MinHeight="100" Name="TreeViewDecode" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
</DockPanel>
</UserControl>
ユーザーに手動で行サイズを調整させることができないため、ドックパネルがうまく機能していないと判断しました。
設計要件を満たすために、XAML にどのような変更を加える必要があるのか疑問に思っています。あれは:
- ユーザーは、個々のコントロールの高さを手動でサイズ変更できる必要があります
- Datagrid の高さは固定されており、ユーザーがメイン ウィンドウのサイズを変更しても大きくなったり小さくなったりすることはありません。
- メインウィンドウの高さが小さくなると、まずツリービューの高さが小さくなります。(このプロセス中、必要に応じて垂直スクロール バーが表示されます)。ツリービューが見えなくなると、リッチテキスト ボックスの高さが小さくなります。
私の説明があまり意味をなさない場合は、wireshark を開いて診断を開始し、アプリケーションの高さのサイズを変更して、私の意味を確認することをお勧めします。