0

TextBox を必要に応じて正確に設定するのに問題があります。ここで同様の質問を読んでいましたが、私と同じ要件はありません。

基本的に、常に MaxWidth プロパティに合わせようとする MaxWidth を含むテキスト ボックスが必要です。ユーザーがウィンドウのサイズを変更した場合、必要に応じて縮小するか、MaxWidth まで拡大する必要があります。しかし同時に、この外観を作成するには、左に揃える必要があります。 望ましい外観

しかし、Horizo​​ntalAlignment を "Left" に設定すると、テキスト ボックスの幅が内側の値に基づいて変更されます。Horizo​​ntalAlignment を "Stretch" に設定すると、テキスト ボックスがボタンの左側ではなく、画面の中央に表示されます。

これら 2 つのプロパティの組み合わせが必要ですが、どのようにすればよいかわかりません。

他の問題があるため、GridColumns をレイアウトとして使用しません。これにより、目的の結果を作成できません。

ここに私のButtonEditの例があります - これはボタン付きのTextBoxです:

 <dxe:ButtonEdit 
        x:Name="SearchPanel"
        Margin="52,4,0,0"            
        HorizontalAlignment="Left"       
        VerticalAlignment="Top"      
        NullText="Zadejte hledaný text.."
        Height="23" MaxWidth="200" AllowDefaultButton="False"
        Grid.Row="0">
        <dxe:ButtonEdit.Buttons>
            <dxe:ButtonInfo
                ...
            </dxe:ButtonInfo>
            <dxe:ButtonInfo
                ...
            </dxe:ButtonInfo>
        </dxe:ButtonEdit.Buttons>
    </dxe:ButtonEdit>

誰か助けてくれませんか?

ありがとうございました。

4

2 に答える 2

0

https://stackoverflow.com/a/280402/19496のソリューションを使用して、最大列幅の単一セル グリッドにラップできるはずです。

つまり、次のようなものです。

<Grid Grid.Row="0" VerticalAlignment="Top">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" MaxWidth="200"/>
    </Grid.ColumnDefinitions>    
    <dxe:ButtonEdit 
        x:Name="SearchPanel"
        Margin="52,4,0,0"
        NullText="Zadejte hledaný text.."
        Height="23" AllowDefaultButton="False">
        <dxe:ButtonEdit.Buttons>
            <dxe:ButtonInfo
                ...
            </dxe:ButtonInfo>
            <dxe:ButtonInfo
                ...
            </dxe:ButtonInfo>
        </dxe:ButtonEdit.Buttons>
    </dxe:ButtonEdit>
</Grid>

問題は、HorizontalAlignment="Stretch"(私の知る限り) コントロールのセンタリングを常に意味することです。と組み合わせた場合などを除いて、ほとんどの場合は問題になりませんMaxWidth

Grid 列の動作はわずかに異なり、Width="*".

于 2021-11-28T09:59:04.527 に答える