2013-02-01 34 views
0

如何將Image值綁定到Image2值?WPF,如何在同一元素值的觸發器中設置值綁定

<Style x:Key="ImageButton" TargetType="c:ImageButton"> 
     <Setter Property="Image" Value="/*My image 1*/" /> 
     <Setter Property="Image2" Value="/*My image 2*/" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
      <ControlTemplate TargetType="c:ImageButton"> 
        <StackPanel Orientation="Horizontal" Height="30" Width="30"> 
         <Image Width="30" Height="30" Source="{TemplateBinding Image}" /> 
        </StackPanel> 
      </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Image" Value="{Binding to Property Image2 value}" /> // How bind value to Image2 
      </Trigger> 
     </Style.Triggers> 

</Style> 

回答

7

由於Image2是您ImageButton的屬性,你可以簡單地設置您的綁定源是通過使用RelativeSource SelfImageButton控制,並綁定到Image2財產

<Setter Property="Image" 
     Value="{Binding Image2, RelativeSource={RelativeSource Self}}" /> 
0

您可以嘗試使用ElementName訪問Image1

{Binding ElementName=Image1, Path=DataContext} 

確保您定義Image1

<Image Name="Image1" Width="30" Height="30" Source="{TemplateBinding Image}" /> 
0

我不知道這是否會在你的情況下工作,但你可以試試這個代碼:

<Style x:Key="ImageButton" TargetType="c:ImageButton"> 
    <Setter Property="Image" Value="/*My image 1*/" /> 
    <Setter Property="Image2" Value="/*My image 2*/" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="c:ImageButton"> 
       <StackPanel Orientation="Horizontal" Height="30" Width="30"> 
        <Image x:Name="MyImage" Width="30" Height="30" Source="{TemplateBinding Image}" /> 
       </StackPanel> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter TargetName="MyImage" Property="Source" Value="{TemplateBinding Image2}"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate>     
     </Setter.Value> 
    </Setter> 
</Style> 
相關問題