C# wpf-文本块文本未换行

C# wpf-文本块文本未换行,c#,wpf,xaml,C#,Wpf,Xaml,我有一个简单的wpf窗口,它有一个TextBlock元素,具有以下xaml代码: 当文本超过当前窗口限制时,它不会换行。相反,它只是继续水平,尽管我已经将TextBlock的TextWrap属性设置为Wrap 根据答案中的建议,TextBlock应该位于网格容器中。但是TextBlock在网格容器中,仍然没有包装 如何使TextBlock在超过其窗口大小时将其内容包装成换行符 编辑:以下是整个网格容器的xaml代码: <Grid TextBlock.FontSize="16" DataCo

我有一个简单的wpf窗口,它有一个TextBlock元素,具有以下xaml代码:

当文本超过当前窗口限制时,它不会换行。相反,它只是继续水平,尽管我已经将TextBlock的TextWrap属性设置为Wrap

根据答案中的建议,TextBlock应该位于网格容器中。但是TextBlock在网格容器中,仍然没有包装

如何使TextBlock在超过其窗口大小时将其内容包装成换行符

编辑:以下是整个网格容器的xaml代码:

<Grid TextBlock.FontSize="16" DataContext="{Binding Main, Source={StaticResource Locator}}" HorizontalAlignment="Left" Width="760">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <TextBlock Text="Capture Device" Margin="20,10,10,0"></TextBlock>
        <ComboBox ItemsSource="{Binding Path=CaptureDevices, Mode=OneWay}" DisplayMemberPath="ProductName" SelectedIndex="0" Margin="19,10,10,0" VerticalAlignment="Top" MinHeight="22" Grid.Row="0" Grid.Column="1" Name="DeviceCombo" SelectedItem="{Binding SelectedDevice, Mode=TwoWay}" IsEnabled="{Binding CanSelect}"/>
        <Slider Margin="19,10,10,0" Orientation="Horizontal" Value="{Binding MicrophoneLevel, Mode=TwoWay}" Maximum="100" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" IsEnabled="false" MaxWidth="150"/>
        <Button x:Name="StartBtn" Content="Start" Grid.Column="0" Grid.Row="1" Margin="30,10,5,25" Width="60" Command="{Binding StartRecodrding}" IsEnabled="{Binding CanStart}"/>
        <Button x:Name="StopBtn" Grid.Row="1" Content="Stop" Grid.Column="2" Margin="0,10,15,25" Width="60" Command="{Binding StopRecording}" IsEnabled="{Binding CanStop}"/>
        <ProgressBar x:Name="RecordLevel" Grid.Row="1" Grid.Column="3"  Margin="30,10,15,25" Minimum="0" Maximum="100" MinWidth="170" Value="{Binding CurrentLevel, Mode=OneWay}"></ProgressBar>
        <TextBlock x:Name="Status" Grid.Row="2" Grid.Column="2" Margin="15,15,10,10" Text="{Binding StatusText}"></TextBlock>
        <TextBlock Grid.Row="3" Grid.Column="2" MaxWidth="370" x:Name="ResultTxt" Text="{Binding Text, Mode=OneWay}" TextWrapping="Wrap"></TextBlock>
    </Grid>

第二列的
宽度
不应设置为
自动
。尝试将其设置为
*

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
    <ColumnDefinition Width="*"></ColumnDefinition>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>

看到网格的xaml也会很有帮助,因为它主要是一个容器问题。@MightyBadaboom,我用更多的代码更新了这个问题。请看一看。@avidProgrammer当我在一个示例项目中插入代码并使用一些模拟文本时,resultText TextBlock会包装它的内容。六羟甲基三聚氰胺六甲醚
<Grid TextBlock.FontSize="16" DataContext="{Binding Main, Source={StaticResource Locator}}" HorizontalAlignment="Left" Width="760">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
            <ColumnDefinition Width="Auto"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <TextBlock Text="Capture Device" Margin="20,10,10,0"></TextBlock>
        <ComboBox ItemsSource="{Binding Path=CaptureDevices, Mode=OneWay}" DisplayMemberPath="ProductName" SelectedIndex="0" Margin="19,10,10,0" VerticalAlignment="Top" MinHeight="22" Grid.Row="0" Grid.Column="1" Name="DeviceCombo" SelectedItem="{Binding SelectedDevice, Mode=TwoWay}" IsEnabled="{Binding CanSelect}"/>
        <Slider Margin="19,10,10,0" Orientation="Horizontal" Value="{Binding MicrophoneLevel, Mode=TwoWay}" Maximum="100" Grid.Row="0" Grid.Column="2" Grid.ColumnSpan="2" IsEnabled="false" MaxWidth="150"/>
        <Button x:Name="StartBtn" Content="Start" Grid.Column="0" Grid.Row="1" Margin="30,10,5,25" Width="60" Command="{Binding StartRecodrding}" IsEnabled="{Binding CanStart}"/>
        <Button x:Name="StopBtn" Grid.Row="1" Content="Stop" Grid.Column="2" Margin="0,10,15,25" Width="60" Command="{Binding StopRecording}" IsEnabled="{Binding CanStop}"/>
        <ProgressBar x:Name="RecordLevel" Grid.Row="1" Grid.Column="3"  Margin="30,10,15,25" Minimum="0" Maximum="100" MinWidth="170" Value="{Binding CurrentLevel, Mode=OneWay}"></ProgressBar>
        <TextBlock x:Name="Status" Grid.Row="2" Grid.Column="2" Margin="15,15,10,10" Text="{Binding StatusText}"></TextBlock>
        <TextBlock Grid.Row="3" Grid.Column="2" MaxWidth="370" x:Name="ResultTxt" Text="{Binding Text, Mode=OneWay}" TextWrapping="Wrap"></TextBlock>
    </Grid>
<Grid.ColumnDefinitions>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
    <ColumnDefinition Width="*"></ColumnDefinition>
    <ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid TextBlock.FontSize="16" DataContext="{Binding Main, Source={StaticResource Locator}}" HorizontalAlignment="Left" MaxWidth="760">