WPFに欠けている基本的な知識だと思う質問があります。
テキストボックスの幅を最小限に抑えて、デフォルトの幅(generix.XML)をテキストボックスに設定しました
<Style TargetType="{x:Type TextBox}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="MinWidth" Value="50"/>
</Style>
テキストボックスを保持する2つの異なるコントロールがあります。両方のテキスト ボックスの幅は同じです。テキスト ボックスの幅を宣言するコントロールの 1 つにいくつかのプロパティを追加し、その幅宣言をオーバーライドして、テキスト ボックスがこのプロパティを「見つける」ようにします。
ここに私の要件を説明するいくつかの図があります:
アップデート:
もう1つ重要なことを説明していないことに気づきました。テキストボックスを使用する DataTemplate があります。上で書いたように、同じ DataType (MyData) を持つ 2 つのコントロールがあり、MyData を表示する DateTemplate も作成しました。各コントロールが (データテンプルからの) テキストボックスを異なる幅で表示することを望みます。
更新 2: ここにいくつかのコードがあります
1-テキストボックスを使用しているデータへのdataTemplate
<DataTemplate DataType="{x:Type ml:MyData}">
<Border BorderBrush="Transparent" ClipToBounds="True" Style="{StaticResource errorBorder}">
<TextBox Text="{Binding MyText}"/>
</Border>
</DataTemplate>
2-テキストボックスを使用するデータテンプレートを使用した方法。
<ContentPresenter Grid.Column="1" Margin="10,1,10,1" HorizontalAlignment="Left" Content="{Binding}" />
この contentPresentor は、2 つの異なるコントロールに表示されています。前に書いたように、各コントロールがテキストボックスを異なる幅で表示することを望みます
基本的なknloage(添付されたプロパティ?ロジック/ビジュアルツリー?)が欠けているようです。
ありがとう、レオン