2017-07-04 31 views
0

私はこのようなBorderと丸い窓作られた:あなたは、私が最初にGridRowの背景を変更し、これがラウンドすることを防ぐ(角の丸みを持っている)と私はそれが境界線を追加修正したいと思います見ての通り個々のBorder CornerRadiusをバインドする方法は?

<Border CornerRadius="{Binding WindowCornerRadius}" Background="{StaticResource BackgroundDarkBrush}"> 
    <Border.Effect> 
     <DropShadowEffect ShadowDepth="0" Opacity="0.2"></DropShadowEffect> 
    </Border.Effect> 
</Border> 
<Grid> 
    <Grid.RowDefinitions> 
     <!--Title Bar--> 
     <RowDefinition Height="{Binding TitleHeightGridLength}"></RowDefinition> 
     <RowDefinition Height="auto"></RowDefinition> 
     <RowDefinition Height="*"></RowDefinition> 
    </Grid.RowDefinitions> 
    <!--Title Bar--> 
    <Border Background="{StaticResource TitleBrush}" CornerRadius="{Binding WindowCornerRadius,WindowCornerRadius,0,0}"> 
     <Grid Grid.Column="0" Panel.ZIndex="1"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="auto" /> 
       <ColumnDefinition Width="*"/> 
       <ColumnDefinition Width="auto"/> 
      </Grid.ColumnDefinitions> 
      <Button Style="{StaticResource SystemIconButton}" Command="{Binding MenuCommand}"> 
       <Image Source="Images/Logo/Wink.png"></Image> 
      </Button> 
     </Grid> 
    </Border> 
</Grid> 
</Grid> 
</Border> 

を最初にGridRowしかし、私は失敗しました。上記のコードは、私にエラーを与えますCornerRadius="{Binding WindowCornerRadius,WindowCornerRadius,0,0}"

"バインディング"型のコンストラクタには4つの引数があります。

私の質問は別のボーダーを追加することで正しいのですか? (はいの場合はどうすればCornerRadiusを個別にバインドできますか)。

答えて

0

このようなバインディングは使用できません。 CornerRadiusのバインドでは、の厚みタイプのプロパティがDataContextであり、のパスがバインディング内にあります。パスはバインディングに暗黙的に指定されていますが、明示的に設定することもできます:Property="{Binding Path=blabla}"。詳細情報here

CornerRadiusは動的に変更されますか?どうして?

はまた、このを見て: Binding only part of the margin property of WPF control

+0

値コンバータが適切な解決策であるとして、それが思われます! –

+0

はい、元の4つの厚さのプロパティの一部のみをコピーする独自のコンバータを実装します –

関連する問題