2013-12-12 50 views
0

我有以下XAML和我想要的边境Border.Effect属性被设置为“LightBlue”时的的财产器isChecked单选按钮设置为true。 如何在xaml中实现这一点? (需要找到一种通用的方法来做到这一点,因为我有很多很多的控制这样在我的应用程序)如何改变边框的样式在下面的XAML

请看以下XAML代码:如果你想改变边框的颜色

  <StackPanel Orientation="Vertical" HorizontalAlignment="Left"> 
       <RadioButton Width="15" HorizontalAlignment="Left" IsChecked="{Binding Count, Mode=TwoWay, Converter ={StaticResource IntegerToBooleanConverter}, ConverterParameter= 1}" GroupName="BCount"/> 
       <Border Background="LightGray" Margin="0,15,0,0" Height="300" Width="290" CornerRadius="5" HorizontalAlignment="Left"> 
        <StackPanel> 
         <Label Name="RadioLabel" Margin="15"> 
          <Label.Content> 
           <TextBlock> 
            <Run Text="{x:Static local:Properties.Resources.SelectText}" /> 
           </TextBlock> 
          </Label.Content> 
         </Label> 
         <Image Stretch="Fill" Height="40" Margin="17,70,17,15" Source="SomeImage.png"/> 
        </StackPanel> 
       </Border> 
      </StackPanel> 
+1

的Border.Effect属性的类型的“效果”,你不能给它分配一种颜色。你究竟在做什么? –

回答

0

,合适的物业是BorderBrush

<Border BorderBrush="LightBlue" BorderThickness="1" ...> 

使用DataTrigger当其他财产在某些状态下改变这个(或任何)属性。

0

也许这与kaxaml测试的小例子可以帮助你

<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Vertical"> 
    <CheckBox x:Name="RB" Width="15" HorizontalAlignment="Left"/> 
    <Border Width="290" Height="300" HorizontalAlignment="Left" Margin="0,15,0,0" Background="LightGray" CornerRadius="5"> 
    <Border.Style> 
     <Style TargetType="Border"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding ElementName=RB, Path=IsChecked, Mode=OneWay}" Value="True"> 
      <Setter Property="Effect"> 
       <Setter.Value> 
       <DropShadowEffect BlurRadius="10" Color="LightBlue" ShadowDepth="0"/> 
       </Setter.Value> 
      </Setter> 
      </DataTrigger> 
     </Style.Triggers> 
     </Style> 
    </Border.Style> 
    <StackPanel> 
     <Label Name="RadioLabel" Margin="15"> 
     <Label.Content> 
      <TextBlock> 
      <Run Text="Test"/> 
      </TextBlock> 
     </Label.Content> 
     </Label> 
     <Image Height="40" Margin="17,70,17,15" Source="SomeImage.png" Stretch="Fill"/> 
    </StackPanel> 
    </Border> 
</StackPanel> 

希望帮助

enter image description here

+0

这正是我想要的。假设我希望这种风格被用于许多带有边框的单选按钮,还有其他方法可以实现它(比如将其放入资源文件中)还是需要为所有内容编写内联样式? –