Wpf 文本框不';不适合扩展器中的内容大小

Wpf 文本框不';不适合扩展器中的内容大小,wpf,xaml,textbox,Wpf,Xaml,Textbox,我有一个Xaml视图,试图在Exander中的网格中显示文本框 <Expander DataContext="{Binding DiagnosticCategories[0].DiagnosticResults[0]}" <!-- For the test --> Background="Transparent" Foreground="{StaticResource ActiveFore

我有一个Xaml视图,试图在Exander中的网格中显示文本框

<Expander DataContext="{Binding DiagnosticCategories[0].DiagnosticResults[0]}" <!-- For the test -->
          Background="Transparent"
          Foreground="{StaticResource ActiveForegroundBrush}"
          IsExpanded="False">

                <Grid Margin="10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" SharedSizeGroup="A" />
                        <ColumnDefinition Width="*" SharedSizeGroup="A" />
                        <ColumnDefinition Width="auto" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto" />
                        <RowDefinition Height="auto" />
                        <RowDefinition Height="auto" />
                    </Grid.RowDefinitions>
                    <StackPanel
                        Grid.Row="1"
                        Grid.Column="0"
                        VerticalAlignment="Top">
                        <TextBox
                            Margin="10"
                            Background="Transparent"
                            BorderThickness="0"
                            FontSize="13"
                            FontWeight="Light"
                            Foreground="{StaticResource ActiveForegroundBrush}"
                            IsReadOnly="True"
                            Opacity="0.8"
                            ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                            SelectionBrush="Black"
                            Text="{Binding FormatedParameters, Mode=OneWay}"
                            TextWrapping="Wrap" />
                    </StackPanel>
                    [...]  
                </Grid>
            </Expander>

您可以尝试
RichTextBox

<Expander DataContext="{Binding DiagnosticCategories[0].DiagnosticResults[0]}" <!-- For the test -->
          Background="Transparent"
          Foreground="{StaticResource ActiveForegroundBrush}"
          IsExpanded="False">

                <Grid Margin="10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" SharedSizeGroup="A" />
                        <ColumnDefinition Width="*" SharedSizeGroup="A" />
                        <ColumnDefinition Width="auto" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto" />
                        <RowDefinition Height="auto" />
                        <RowDefinition Height="auto" />
                    </Grid.RowDefinitions>
                    <StackPanel
                        Grid.Row="1"
                        Grid.Column="0"
                        VerticalAlignment="Top">
                        <RichTextBox
                            Margin="10"
                            Background="Transparent"
                            BorderThickness="0"
                            FontSize="13"
                            FontWeight="Light"
                            Foreground="{StaticResource ActiveForegroundBrush}"
                            IsReadOnly="True"
                            Opacity="0.8"
                            ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                            SelectionBrush="Black"
                            Text="{Binding FormatedParameters, Mode=OneWay}"
                            TextWrapping="Wrap" />
                    </StackPanel>
                    [...]  
                </Grid>
            </Expander>
当我想使用
TextBox
时,在一定高度下我也会遇到同样的问题。我用
RichTextBox
而不是
TextBox
解决了这个问题

<Expander DataContext="{Binding DiagnosticCategories[0].DiagnosticResults[0]}" <!-- For the test -->
          Background="Transparent"
          Foreground="{StaticResource ActiveForegroundBrush}"
          IsExpanded="False">

                <Grid Margin="10">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" SharedSizeGroup="A" />
                        <ColumnDefinition Width="*" SharedSizeGroup="A" />
                        <ColumnDefinition Width="auto" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto" />
                        <RowDefinition Height="auto" />
                        <RowDefinition Height="auto" />
                    </Grid.RowDefinitions>
                    <StackPanel
                        Grid.Row="1"
                        Grid.Column="0"
                        VerticalAlignment="Top">
                        <RichTextBox
                            Margin="10"
                            Background="Transparent"
                            BorderThickness="0"
                            FontSize="13"
                            FontWeight="Light"
                            Foreground="{StaticResource ActiveForegroundBrush}"
                            IsReadOnly="True"
                            Opacity="0.8"
                            ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                            SelectionBrush="Black"
                            Text="{Binding FormatedParameters, Mode=OneWay}"
                            TextWrapping="Wrap" />
                    </StackPanel>
                    [...]  
                </Grid>
            </Expander>

正如其他人提到的,我有点不确定你想要实现什么。我在您的示例中添加了两个水平和垂直布局:

<Expander DataContext="{Binding DiagnosticCategories[0].DiagnosticResults[0]}"
        Background="Yellow" HorizontalAlignment="Center" VerticalAlignment="Center" MinWidth="200"
        IsExpanded="False">

    <Grid Margin="10" Background="Blue">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" SharedSizeGroup="A" />
            <ColumnDefinition Width="*" SharedSizeGroup="A" />
            <ColumnDefinition Width="auto" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="auto" />
            <RowDefinition Height="auto" />
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
        <StackPanel
                    Grid.Row="1"
                    Grid.Column="0"
                    VerticalAlignment="Top">
            <TextBox
                        Margin="10"
                        Background="Orange"
                        BorderThickness="0"
                        FontSize="13"
                        FontWeight="Light"
                        IsReadOnly="True"
                        Opacity="0.8"
                        ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                        SelectionBrush="Black"
                        Text="Test Text"
                        TextWrapping="Wrap"
                    />
        </StackPanel>
    </Grid>
</Expander>


我得到以下信息:

关闭:

开放式:


不幸的是,基本RichTextBox控件没有属性“Text”,因此我无法像您所说的那样绑定我的属性。也许你会混淆Wpf工具包中的控件,但我没有使用这个librairyNo。RichTextBox不是工具箱。也许这可以为你工作,请减少你的代码样本到最低限度。如果已经存在,则提供要绑定到的模型类。我运行了你的代码(用单词“test”替换了绑定),但找不到文本框高度的任何特殊内容。它看起来很像文本块。你也可以放一个截图吗?我不明白你到底想要实现什么。