1

ここに画像の説明を入力ユーザーがテキストボックスに入力したときにテキストを折り返すことに行き詰まり、「MaxWidthを使用してテキストボックスを制御し、テキストを折り返すが、テキストボックスのサイズを縮小するStretch」と表示されますが、他のテキスト ボックスと一致しません。

テキストをラップしない場合、テキストがテキストボックスよりも大きい場合、グリッド全体が移動します。これはとにかくサイズを修正してテキストをラップしてください。

これが私のxamlコードです

  <DockPanel Grid.Row="1">
            <Grid Name="gLeftContent" Grid.Row="0" Background="Transparent" >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="30*"/>
                    <ColumnDefinition Width="30*"/>
                    <ColumnDefinition Width="30*"/>
                    <ColumnDefinition Width="10*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="30" />
                    <RowDefinition Height="20"/>
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="0"/>
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="25" />
                    <RowDefinition Height="0" />
                    <RowDefinition Height="25" />
                    <!-- Row 14 -->
                    <RowDefinition Height="25" />
                </Grid.RowDefinitions>

                <TextBox 
                Name="tbName" 
                Text="{Binding SelectedStory.Slug, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource ErrorTemplate}" 
                Width="{Binding ActualWidth, ElementName=tbName}"   **//used ActualWidth but it shrinks the text box and doesn't match with the other text box.**
                Grid.Column="1" 
                Grid.Row="5" 
                TextWrapping="Wrap" 
                d:LayoutOverrides="Height" 
                Grid.ColumnSpan="2" 
                HorizontalAlignment="Stretch" 
                LostFocus="tbSlug_LostFocus"
                >
                 <TextBox 
                Name="tbHeadline" 
                Text="{Binding SelectedStory.Headline, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource ErrorTemplate}" 
                Grid.Column="1"  
                Grid.Row="6" 
                TextWrapping="Wrap" 
                d:LayoutOverrides="Height" 
                Grid.ColumnSpan="2" 
                HorizontalAlignment="Stretch" 
                LostFocus="tbHeadline_LostFocus" 
                 />
                </TextBox>
                <ItemsControl 
                Grid.Column="1" 
                Grid.Row="14" 
                Grid.RowSpan="2" 
                Grid.ColumnSpan="2" 
                cal:RegionManager.RegionName="{x:Static inf:RegionNames.MetadataGenerateImagesRegion}"/>
            </Grid>
        </DockPanel>

前もって感謝します。

4

3 に答える 3

1

きれいな答えからもう一度始めましょう。

        <TextBox Name="tbName"  
        Text="{Binding SelectedStory.Slug, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource ErrorTemplate}"  
        Width="Auto" Height="Auto"
        HorizontalAlignment="Stretch"  VerticalAlignment="Stretch"
        Grid.Column="1"  Grid.Row="5"  Grid.ColumnSpan="2"
        TextWrapping="Wrap"  AcceptsReturn="True"  
        LostFocus="tbSlug_LostFocus" > 

省略を避けるために、コード内で完全に置き換えてください。

于 2012-05-05T07:19:36.840 に答える
1

RowDefinition Height="Auto" を設定する必要があります。追加の行に合わせて拡大できます。

width をそれ自体にバインドするべきではありません。

試す

 <TextBox 
            Name="tbName" 
            Text="{Binding SelectedStory.Slug, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource ErrorTemplate}" 
            Grid.Column="1" 
            Grid.Row="5"  
            Grid.ColumnSpan="2" 
            TextWrapping="Wrap"
            HorizontalAlignment="Stretch"
            LostFocus="tbSlug_LostFocus" />
于 2012-05-05T12:33:50.490 に答える
0

テキストボックスに追加してみてください:

AcceptsReturn="True"

コントロールは折り返されたテキストを表示する場合がありますが、現在、キーストロークの入力を受け入れることができません。

于 2012-05-05T05:17:51.843 に答える