0

XAML でマージン プロパティを設定し、それらを から取得したい Grid コントロールがありますSystemInformation.CaptionHeight。C# でそれを行う方法を理解しましたが、XAML で行いたいと思います。

リソースを使用してこのような設定を行ったことはありませんが、次のようなバリエーションを試しました

<Grid>
   <Grid.Margin>
      <Thickness Top="{StaticResource {x:Static Forms:SystemInformation.CaptionHeight}}" Left="5" Right="5" Bottom="5" />
   </Grid.Margin>
</Grid>

<Grid>
   <Grid.Margin>
      <Thickness Top="{x:Static Forms:SystemInformation.CaptionHeight}" Left="5" Right="5" Bottom="5" />
   </Grid.Margin>
</Grid>

しかし、役に立たない。実行時にこのような属性を動的に設定するにはどうすればよいですか?

4

1 に答える 1

1

バインディングを使用しますが、ソースが静的であることを指定し、プロパティの場所を指すようにします

また、Thickness.TopDependencyProperty ではないため、バインドできません。あなたの最良の代替手段はGrid.Margin、コンバーターを使用してバインドすることです。これは、double 値を取り、それをThicknessプロパティに変換します。

<Grid Margin="{Binding 
          Source={x:Static Forms:SystemInformation.CaptionHeight},
          Converter={StaticResource MyDoubleToMarginConverter}}" />
于 2011-12-01T20:10:30.433 に答える