如何绑定个别Border CornerRadius?

时间:2017-07-04 13:37:49

标签: wpf

我用这样的Border制作了一个圆形窗口:

<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的背景,这可以防止它变成圆形(有角半径),我想更正它,首先添加边框GridRow但是我失败了。上面的代码在CornerRadius="{Binding WindowCornerRadius,WindowCornerRadius,0,0}"

中给出了错误
  

没有类型的构造函数&#34;绑定&#34;有4个参数。

我的问题是我是否通过添加另一个边框来正确处理? (如果是,我如何单独绑定CornerRadius

1 个答案:

答案 0 :(得分:0)

你不能使用这样的绑定。对CornerRadius的绑定将从 DataContext 中查找 Thickness -typed属性,并在绑定中指定 Path 。路径隐含在绑定中,但您可以明确地设置它:Property="{Binding Path=blabla}"。更多信息here

CornerRadius是否会动态变化?为什么呢?

另外看看这个: Binding only part of the margin property of WPF control