2013-05-15 65 views
2

我嘗試爲我的RadioButton設置圖像而不是子彈。我有10個RadioButton,但我無法爲所有人設置我的FishImg。只有剛纔點擊的rb纔會顯示imgFish。RadioButton和圖像

我的風格

<Style TargetType="RadioButton"> 
    <Setter Property="Content" Value="{DynamicResource imgFish}"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type RadioButton}"> 
       <Grid> 
        <Image Source="Images/empty.png" Width="24" Height="24" /> 
        <ContentPresenter/> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
    <Style.Triggers> 
     <Trigger Property="IsChecked" Value="True"> 
      <Setter Property="Content" Value="{DynamicResource imgHero}"/> 
     </Trigger> 
     <Trigger Property="IsChecked" Value="False"> 
      <Setter Property="Content" Value="{DynamicResource imgFish}"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

我的XAML

   <RadioButton Grid.Column="2" Grid.Row="1" Name="hvP1" /> 
       <RadioButton Grid.Column="2" Grid.Row="2" Name="hvP2" /> 
       <RadioButton Grid.Column="2" Grid.Row="3" Name="hvP3" /> 
       <RadioButton Grid.Column="2" Grid.Row="4" Name="hvP4" /> 
       <RadioButton Grid.Column="2" Grid.Row="5" Name="hvP5" /> 
       <RadioButton Grid.Column="2" Grid.Row="6" Name="hvP6" /> 
       <RadioButton Grid.Column="2" Grid.Row="7" Name="hvP7" /> 
       <RadioButton Grid.Column="2" Grid.Row="8" Name="hvP8" /> 
       <RadioButton Grid.Column="2" Grid.Row="9" Name="hvP9" /> 
       <RadioButton Grid.Column="2" Grid.Row="10" Name="hvP10" /> 
+1

如果我沒有理解錯的,你想要的魚形象從一開始就顯示。然後檢查複選框會給你一個英雄或魚的基礎上是否複選框狀態是選中或未選中。如果是這種情況,您必須用fishImg初始化內容。 Style.Trigger代碼僅在您找到一個複選框後執行。 –

回答

4

最後,我今天發現它,即使我敢肯定我昨天試了...可能是累了。

這裏工作解決方案

<Window x:Class="WpfApplication2.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Window.Resources> 
    <Image Source="Images/on.png" x:Key="imgOn"/> 
    <Image Source="Images/off.png" x:Key="imgOff"/> 
    <Style TargetType="RadioButton"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type RadioButton}"> 
        <Grid> 
         <Image Source="Images/off.png" Width="32" Height="32"/> 
         <ContentPresenter/> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsChecked" Value="True"> 
       <Setter Property="Content" Value="{DynamicResource imgOn}"/> 
      </Trigger> 
      <Trigger Property="IsChecked" Value="False"> 
       <Setter Property="Content" Value="{DynamicResource imgOff}"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<StackPanel> 
    <RadioButton Name="rb1" Width="32" Height="32" Margin="5"/> 
    <RadioButton Name="rb2" Width="32" Height="32" Margin="5"/> 
    <RadioButton Name="rb3" Width="32" Height="32" Margin="5"/> 
    <RadioButton Name="rb4" Width="32" Height="32" Margin="5"/> 
</StackPanel>