2015-05-13 46 views
0

目前我正在開發一個reversi遊戲,並且這是一個Stone板的ControlTemplate,我使用DataTrigger來查看所有者是誰的石頭以將按鈕設置爲合適的圖像,但是當我在setter上使用TargetName(對於圖像刷,這是imga)。我得到一個錯誤「無法找到觸發器目標'imga'(目標必須出現在使用它的任何Setters,Triggers或Conditions之前)。」Datatrigger更改ImageBrush來源

但是由於我在我的setters之前宣佈了這個畫筆,對我來說。此代碼位於app.xaml資源中。

在此先感謝

這是按鈕

<Style x:Key="0" TargetType="{x:Type Button}"> 
     <Setter Property="Foreground" Value="White" /> 
     <Setter Property="SnapsToDevicePixels" Value="True" /> 
     <Setter Property="Height" Value="48"/> 
     <Setter Property="Width" Value="48" /> 
     <Setter Property="Template"> 

      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type Button}"> 
        <Ellipse> 
         <Ellipse.Fill x:Uid="filler"> 
          <ImageBrush x:Name="imga" ImageSource="afbeeldingen/vuur.jpg"/> 

         </Ellipse.Fill> 
        </Ellipse> 

        <ControlTemplate.Triggers> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Background" Value="#E59400" /> 

         </Trigger> 

         <DataTrigger Binding="{Binding Owner.Value.ArrayIndex}" Value="0"> 
          <DataTrigger.Setters> 

           <Setter TargetName="imga" Property="ImageSource" Value="afbeeldingen/vuur.jpg" /> 


          </DataTrigger.Setters> 
         </DataTrigger> 

回答

0

IMGA相關的部分是不是你的模板的一部分,它是一種資源,所以你不能從一個觸發器更改其屬性。你所要做的就是改變Ellipse的Fill屬性。你會有這樣的事情:

<ControlTemplate TargetType="{x:Type Button}"> 
    <Ellipse x:Name="myEllipse"> 
     <Ellipse.Fill x:Uid="filler"> 
      <ImageBrush x:Name="imga" ImageSource="afbeeldingen/vuur.jpg"/> 
     </Ellipse.Fill> 
    </Ellipse> 

    <ControlTemplate.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Background" Value="#E59400" /> 
     </Trigger> 

     <DataTrigger Binding="{Binding Owner.Value.ArrayIndex}" Value="0"> 
      <DataTrigger.Setters> 
       <Setter TargetName="myEllipse" Property="Fill"> 
        <Setter.Value> 
         <ImageBrush x:Name="imga" ImageSource="afbeeldingen/vuur.jpg"/> 
        </Setter.Value> 
       </Setter> 
      </DataTrigger.Setters> 
     </DataTrigger> 
+0

是否有可能知道我的答案有什麼問題?如果我錯了,我想知道請... – mgarant

+0

這個工程,非常感謝 –