2

幅が 700px を超えてはならない UserControl を用意します。MaxWidths を 700px に設定しました。

内部はグリッド - 3 列です。1 列目と 2 列目にはラベルがあり、3 列目には入力フィールドがあります。ラベルの内容は、言語に基づいて動的になります。

私がやろうとしているのは、コントロールがロードされたときに列 0 と 1 のラベルが動的に内容を取得したら、列 2 の入力フィールドを可能な限り広くすることです。

私は設定しました:

1) 列 2 の最小幅。列 0 と 1 のラベルの幅が広すぎた場合に入力フィールドが完全に非表示にならないようにします。

2) 列 2 を Width="*" に設定して、ラベルが設定されているときに入力フィールドに使用可能なすべての幅を使用できるようにします。

3) 列 0 と 1 の Width="Auto" を使用して、ラベルに合わせて必要に応じて拡大できるようにします。

今、私はこの問題を抱えています.列0または1のテキストが長すぎると、グリッド全体がコンテナの最大サイズを超えて拡大し始め、3番目の列が切り取られます. 列0と1にMaxWidthを設定せずにそれを止める方法はありますか?

4

2 に答える 2

4

MaxWidthを親にバインドするように設定できます。

<Grid MaxWidth="{Binding ActualWidth, ElementName=NameOfYourParentElement}" ... />
于 2018-07-18T15:02:50.353 に答える
0

いいえ、そうではありません。

ラベルが切り取られたくない場合、およびグリッドがその親を超えて拡張されたくない場合は、列 0 と 1 に最大幅を設定するか、ラベルに最大幅を設定する 2 つのオプションしかありません。列 0 と 1 を編集し、ラベルのテキストを折り返すように設定します。そうしないと、何かが切り取られたり重なったりします。

于 2013-05-02T16:45:15.380 に答える