Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML用于类似Wireshark诊断的窗口?_C#_.net_Wpf_Xaml - Fatal编程技术网

C# XAML用于类似Wireshark诊断的窗口?

C# XAML用于类似Wireshark诊断的窗口?,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正在尝试创建一个与wireshark完全相同的网络诊断页面 我有一个DataGrid(用于在表上显示发送/接收的数据包)、TreeView(用于显示具有折叠/扩展功能的数据包的详细信息)和一个RichTextBox(用于显示原始数据) 以下是我目前拥有的XAML: <UserControl x:Class="DDCUI.CommDiagnosisWPFCtrl" xmlns="http://schemas.microsoft.com/winfx/2006/xam

我正在尝试创建一个与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>

我认为dockpanel不适合我,主要是因为我不能让用户手动调整行大小

我想知道为了满足我的设计要求,我必须对XAML进行哪些更改。即:

  • 用户必须能够手动调整indivudual控件的高度
  • Datagrid的高度是固定的,如果用户调整主窗口的大小,它永远不会变大/变小
  • 当主窗口的高度变小时,首先树状视图的高度变小。(在此过程中,如有必要,将显示垂直滚动条)。当树视图不再可见时,richtextbox的高度会变小

如果我的描述没有多大意义,那么最好打开wireshark,开始诊断,并尝试调整应用程序的高度,以了解我的意思。

为什么不下载并查看他们是如何做到的?即使这意味着使用他们使用的UI技术进行编码,它显然完全适合您的目的

如果没有一个面板是最通用的,做你需要的,你可以实现你自己的(通过继承)。我不知道是否有可能有效地将
网格子类化,但这将是第一件要研究的事情,因为它们已经支持通过拖动调整大小(尽管您可以自己重用它们)。

问题恰恰在于:我研究了它,而它们不使用WPF。我需要我的是完全在WPF。