web-dev-qa-db-ja.com

WPFコントロール幅バインディング

コンテンツに2つの境界線があります。2番目の境界線の幅はコンテンツに応じて変化します。最初の境界線を2番目の境界線の幅にバインドしようとしていますが、うまくいかず、何が欠けているのかわかりません。誰かが私にいくつかの方向を教えてもらえますか?以下は私が現在試みているものの例です。

<Border x:Name="border1" Width="{Binding Path=Width, ElementName=border2}">
    ... 
</Border>

<Border x:Name="border2">
    ...
</Border>
29
Terco

パスをActualWidthに変更します。

38
H.B.

パスもViewportWidthに変更してください!

<Grid x:Name="mainGrid">
//and some elements exist there
  <Grid> 
    <Border x:Name="border_btn" Width="{Binding ElementName=root ,Path=ViewportWidth, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>  
  </Grid>
</Grid>

この場合、ActualWidthは常に0と表示されるため、ActualWidthではなくViewportWidthを使用してください。この問題をテストするには、xamlのこの行を使用してこれをテストできます。

  <TextBlock Text="{Binding  ElementName=mainGrid, Path=ActualWidth ,Mode=TwoWay}" Foreground="Red"/>
1