2017-04-10 1 views
0

테두리가 있으며 테두리 색과 배경색을 동시에 변경하고 싶습니다. 그래서, 난 다음 내가 동시에 배경 solidcolorbrush 변경을 원하는, 내가 런타임에 변경하려는 것은 borderbrush입니다wpf 스타일, 테두리의 테두리 브러시를 배경으로 참조하는 방법

<Style x:Key="EoE" TargetType="{x:Type Border}"> 
<Setter Property="BorderBrush" Value="{StaticResource LightGreen}"/> 
<Setter Property="Background"> 
    <Setter.Value> 
     <SolidColorBrush Color="{Binding Path=BorderBrush }" Opacity="1"/> 
    </Setter.Value> 
</Setter> 
<Setter Property="Effect"> 
    <Setter.Value> 
     <DropShadowEffect ShadowDepth="0" Color="White" Opacity="0.5" BlurRadius="10"/> 
     <!--<BlurEffect Radius="3" RenderingBias="Quality"/>--> 
    </Setter.Value> 
</Setter> 
<Setter Property="BorderThickness" Value="2"></Setter> 

노호 스타일을 정의합니다.

답변

1

, 당신이 시도 할 수 :

<Style x:Key="EoE" TargetType="{x:Type Border}"> 
    <Style.Resources> 
     <SolidColorBrush x:Key="bgBrush" Color="{Binding Path=BorderBrush.(SolidColorBrush.Color), RelativeSource={RelativeSource AncestorType=Border}}" Opacity="0.7"/> 
    </Style.Resources> 
    <Setter Property="BorderBrush" Value="{StaticResource LightGreen}"/> 
    <Setter Property="Background" Value="{StaticResource bgBrush}" /> 
    <Setter Property="Effect"> 
     <Setter.Value> 
      <DropShadowEffect ShadowDepth="0" Color="White" Opacity="0.5" BlurRadius="10"/> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="BorderThickness" Value="2"></Setter> 
</Style> 

당신이 만약 BackgroundBorderBrush과 똑같은 브러시로 설정하려면 @ASh에서 제공하는 솔루션을 사용할 수 있습니다.

<Style x:Key="EoE" TargetType="{x:Type Border}"> 
    <Setter Property="BorderBrush" Value="{StaticResource LightGreen}"/> 
    <Setter Property="Background" Value="{Binding Path=BorderBrush, RelativeSource={RelativeSource Self}}"/> 
    <Setter Property="Effect"> 
     <Setter.Value> 
      <DropShadowEffect ShadowDepth="0" Color="White" Opacity="0.5" BlurRadius="10"/> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="BorderThickness" Value="2"></Setter> 
</Style> 
+0

예, 불투명합니다. –

1

RelativeSource Self 바인딩 만들기 : 당신이 정말로 국경의 Background 속성에 대한 또 다른 Opacity 또 다른 브러시를 정의하려면

<Setter Property="Background" 
     Value="{Binding Path=BorderBrush, RelativeSource={RelativeSource Self}"/> 
+0

감사합니다. 정말 도움이됩니다. –