2010-06-15 7 views
6

Mam aplikacji WPF, gdzie próbuję zrobić przycisk zbliżenia, jak obraz. Próbuję narysować obramowanie lub pokazać obramowanie na myszy nad ... Ale nie mogę sprawić, żeby to działało. Próbowałem jak 6 różnych metod robienia tego ... Obrazy, granice z obrazami, pędzle, itp.Rysowanie przez WPF Granica na MouseOver

Używam następujący kod w tej chwili:

<Canvas Name="cMin" Height="16" Width="16" 
     Grid.Column="1" Grid.Row="1"> 
    <Canvas.Background> 
     <ImageBrush ImageSource="_.png" Stretch="None" /> 
    </Canvas.Background> 
    <Border BorderBrush="Transparent" BorderThickness="1" Background="Transparent" 
      CornerRadius="0" Height="18" Width="18"> 
     <Border.Style> 
      <Style TargetType="Border"> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="BorderBrush" Value="LightBlue" /> 
        </Trigger> 
        <Trigger Property="IsMouseOver" Value="False"> 
         <Setter Property="BorderBrush" Value="Transparent" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Border.Style> 
    </Border> 
</Canvas> 

Każda pomoc będzie mile widziane, Dzięki!

Odpowiedz

10

Problem polega na tym, że lokalna wartość dla właściwości BorderBrush ma pierwszeństwo przed twoją StyleTrigger. This MSDN article opisuje, w jaki sposób rozwiązano wartość skuteczną. Zasadniczo usuń lokalną wartość z elementu Border i powinna działać. Jeśli chcesz określić właściwość, możesz to zrobić w Setter w Style. Również drugi Trigger nie jest potrzebna, jako wartość powróci do pierwotnej wartości, gdy właściwość przełącza się z powrotem na false:

<Border BorderThickness="1" Background="Transparent" 
     CornerRadius="0" Height="18" Width="18"> 
    <Border.Style> 
     <Style TargetType="Border"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="BorderBrush" Value="LightBlue" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Border.Style> 
</Border> 
+0

Perfect, thank you! – tcables