C# DockPanel尺寸问题

C# DockPanel尺寸问题,c#,wpf,dockpanel,C#,Wpf,Dockpanel,我的DockPanel组件有问题。调整面板大小时,我不希望出现水平滚动条,而是希望调整左侧内容的大小,但代价是丢失一些内容。实际上,我想要实现的是,DockPanel的正确内容始终可见,避免使用水平滚动条来显示它。 希望我是清楚的! 代码如下:(此数据模板位于listview中) 在调整尺寸的临界点之前: 在调整大小的临界点之后: 我希望文本被修剪,而不是隐藏扩展器箭头,它必须始终向右。 谢谢大家! 您可能应该使用网格而不是DockPanel。DockPanel是一个非常快速的网格,使用网

我的
DockPanel
组件有问题。调整面板大小时,我不希望出现水平
滚动条
,而是希望调整左侧内容的大小,但代价是丢失一些内容。实际上,我想要实现的是,
DockPanel
的正确内容始终可见,避免使用水平滚动条来显示它。 希望我是清楚的! 代码如下:(此数据模板位于listview中)


在调整尺寸的临界点之前: 在调整大小的临界点之后:

我希望文本被修剪,而不是隐藏扩展器箭头,它必须始终向右。
谢谢大家!

您可能应该使用网格而不是DockPanel。DockPanel是一个非常快速的网格,使用网格可以获得更多的自由度

我会使用四列;分别为auto、*auto和auto。 然后,为了确保列在ListView中对齐,添加IsSharedSizeScope属性


由于第二列的宽度设置为*,网格将调整其大小,而不是宽度设置为自动的列。您也可以将其他列设置为设置的大小。

已解决!诀窍是将
ScrollViewer.HorizontalScrollBarVisibility=“Disabled”
放在listview的XAML定义中,它不起作用。。。也许我不知道在哪里添加IsSharedSizeScope属性。将dockpanel更改为网格结构如下:
grid.IsSharedSizeScope=“true”应位于ListBox元素中。然后你必须命名你的ColumnDefinitions,比如抱歉,但在这些日子里,我直到今天才尝试你的代码。我将SharedSizeScope添加到listview中,但是添加SharedSizeGroup将导致横向调整listview大小的行为,内容根本不会调整大小…编辑:如果我删除第二列的SharedSizeGroup(宽度为*的一列),内容将按照添加sharedsizeproperty(问题中的图像)之前调整大小的方式调整大小。我无法摆脱这个问题:(
<DataTemplate DataType="{x:Type src:Voce}" x:Name="templateVoce">
        <StackPanel Name="stackPanelVoce" MaxWidth="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}">
                <DockPanel>
                    <TextBlock Name="labelCodiceVoce" ToolTip="{Binding Path=Voce.Voce}" Text="{Binding Path=Voce.Id}" Width="40" />
                    <TextBlock Name="labelDescrizioneVoce" ToolTip="{Binding Path=Voce.Voce}" Text="{Binding Path=Voce.Voce}" TextTrimming="CharacterEllipsis" Width="500" />
                    <TextBlock Name="labelDescrizioneNature" ToolTip="{Binding Path=Voce.Voce}" Text="{Binding Path=ListaNature, Converter={StaticResource listaNatureConverter}}"/>
                    <Expander Name="expander1" Expanded="expander1_Expanded" Collapsed="expander1_Collapsed" DockPanel.Dock="Right" Width="25" />
                    <TextBox Name="txtValoreVoce" PreviewKeyDown="txtValoreVoce_PreviewKeyDown" TabIndex="1" IsTabStop="False" GotFocus="txtValoreVoce_GotFocus" PreviewTextInput="txtValoreVoce_PreviewTextInput_1" AllowDrop="False" Loaded="txtValoreVoce_Loaded"  IsEnabled="{Binding Path=DataContext.VMPadre.IsModifica, RelativeSource={RelativeSource FindAncestor, AncestorType=src:InserimentoVoci, AncestorLevel=1}}" DockPanel.Dock="Right" Width="70" HorizontalAlignment="Right">
                        <TextBox.Style>
                            <Style>
                                <Setter Property="TextBox.Text" Value="{Binding Path=Valore, StringFormat=N0}" />
                                <Style.Triggers>
                                    <Trigger Property="TextBox.IsKeyboardFocusWithin" Value="True">
                                        <Setter Property="TextBox.Text" Value="{Binding Path=Valore, UpdateSourceTrigger=LostFocus, Mode=TwoWay}" />
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </TextBox.Style>
                        <TextBox.InputBindings>
                            <!--Disable Paste-->
                            <KeyBinding Command="ApplicationCommands.NotACommand"
                        Key="V"
                        Modifiers="Control" />
                        </TextBox.InputBindings>
                        <TextBox.ContextMenu>
                            <ContextMenu IsEnabled="False" Visibility="Hidden" />
                        </TextBox.ContextMenu>
                    </TextBox>
                    <TextBlock Name="lblPiuMeno" Margin="0,-5,0,0" VerticalAlignment="Center" FontSize="16" HorizontalAlignment="Right" DockPanel.Dock="Right" />
                    <Image Name="imgMulti" Source="/ClientConfidi;component/Immagini/112_Plus_Orange.ico" Margin="1" Visibility="Collapsed" ToolTip="La voce presenta nature opzionali" DockPanel.Dock="Right" HorizontalAlignment="Right" />
                    <Image Name="imgWarning" Source="/ClientConfidi;component/Immagini/Annotate_Warning.ico" Margin="1" Visibility="Collapsed" DockPanel.Dock="Right" HorizontalAlignment="Right" />
                </DockPanel>
                <ContentControl Name="controlExpander" IsEnabled="{Binding Path=DataContext.VMPadre.IsModifica, RelativeSource={RelativeSource FindAncestor, AncestorType=src:InserimentoVoci, AncestorLevel=1}}"/>
        </StackPanel>