[英]Change Image when mouse is over with Binding c# WPF
我正在WPF中執行一個程序,該程序在網格中放置了不同的矩形。 它們都有一個imagesource綁定,使圖像在整個程序中動態變化。 它類似於2048。問題是,現在我想讓此矩形在鼠標懸停在其上方時更改其圖像源。 就像我已經做過圖像源綁定一樣,我不知道該怎么做。
<ListBox Grid.Row="1" ItemsSource="{Binding Tiles}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="{Binding Converter={StaticResource BackgroundColor2048Converter}}" Width="106.25px" Height="106.25px" CornerRadius="3" BorderThickness="1" VerticalAlignment="Stretch" Focusable="False" HorizontalAlignment="Stretch" Margin="7">
<Rectangle Width="104.25px" Height="104.25px" MouseEnter="Rectangle_MouseEnter" MouseLeave="Rectangle_MouseLeave" >
<Rectangle.Fill>
<ImageBrush ImageSource="{Binding Converter={StaticResource ImageBackgroundColor2048Converter}, Mode=OneWay}"/>
</Rectangle.Fill>
</Rectangle>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
這是有關矩形的xaml代碼。 圖像源轉換器可以工作,並用於在游戲過程中更改圖像。 但是現在我也想在mouseenter事件觸發時更改該圖像。 那就是我完全不知道該怎么做的地方。
您可以通過觸發器執行此操作:
<Rectangle Width="104.25px" Height="104.25px" MouseEnter="Rectangle_MouseEnter" MouseLeave="Rectangle_MouseLeave" >
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Setter Property="Fill" >
<Setter.Value>
<ImageBrush ImageSource="{Binding Converter={StaticResource ImageBackgroundColor2048Converter}, Mode=OneWay}"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Rectangle.IsMouseOver" Value="True">
<Setter Property="Fill" >
<Setter.Value>
<!-- Whatever you want here -->
<ImageBrush ImageSource="{Binding MouseOverImageUri}" />
</Setter.Value>
</Setter>
</Trigger>
</Style>
</Rectangle.Style>
</Rectangle>
請注意,您必須通過樣式設置默認值。 這樣做的原因是觸發器會覆蓋樣式,但是直接應用的屬性會覆蓋觸發器。 在這種情況下,您希望觸發器獲勝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.