2013-03-25 57 views
0

以适合给定的高度和宽度WPF窗口我需要增加我的图片OnMouseOver,其被放置在一个StackPanel与取向为水平的HeightWidth使得图像跨越我的整个面板与我的WPF window中给定的尺寸,这是无法实现的。请让我知道如果我错过了我的xaml属性中的任何数学或我的方法有任何问题。 在此先感谢。在鼠标悬停不调整大小图像使用XAML

以下是我的xaml,后来是我的输出图像。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="245"/> 
    </Grid.RowDefinitions> 

    <StackPanel x:Name="TitleSlidesPanel" Grid.Row="0" 
       Orientation="Horizontal"> 
     <StackPanel Orientation="Vertical" 
      Height="245" 
       Width="400" > 

      <Image x:Name="img1" VerticalAlignment="Top" 
       HorizontalAlignment="Left" 
       RenderOptions.BitmapScalingMode="HighQuality" 
       Style="{StaticResource imageStyle}" 
       MouseDown="Img1_OnMouseDown" 
       MouseUp="Img1_OnMouseUp"> 
      </Image> 
      <CheckBox x:Name="Chkbox1" 
       Content="Image1" 
         Width="100" 
         HorizontalContentAlignment="Left" 
       HorizontalAlignment="Left" 
       VerticalContentAlignment="Center" 
       FontSize="12" 
       Margin="0,5,0,0" 
       Foreground="Black" 
       Height="20"> 
      </CheckBox> 
     </StackPanel> 
     <StackPanel Orientation="Vertical" 
        Height="245" 
       Width="400" 
        Margin="-400,0,0,0" > 

      <Image x:Name="Img2" VerticalAlignment="Top" 
       HorizontalAlignment="Right" 
       RenderOptions.BitmapScalingMode="HighQuality" 
       Style="{StaticResource imageStyle}" 
       MouseDown="Img2_OnMouseDown" 
       MouseUp="Img2_OnMouseUp" > 
      </Image> 
      <CheckBox x:Name="Chkbox2" 
       Content="Image2" 
       FontSize="12" 
       Margin="0,5,135,0" 
       HorizontalContentAlignment="Right" 
       HorizontalAlignment="Right" 
       VerticalContentAlignment="Center" 
       Foreground="Black" 
       Height="20"> 
      </CheckBox> 
     </StackPanel> 
    </StackPanel> 
</Grid> 


<Style x:Key="imageStyle" TargetType="{x:Type Image}"> 
    <Setter Property="Height" Value="100" /> 
    <Setter Property="Width" Value="200" /> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Height" Value="245" /> 
      <Setter Property="Width" Value="400" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

DefaultView

OnMouseOverFirstImage

OnMouseOverSecondImage

回答

0

尝试把你的风格无论是在StackPanel中或电网的资源。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="245"/> 
    </Grid.RowDefinitions> 
<Grid.Resources> 
    <Style x:Key="imageStyle" TargetType="{x:Type Image}"> 
     <Setter Property="Height" Value="100" /> 
     <Setter Property="Width" Value="200" /> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Height" Value="245" /> 
       <Setter Property="Width" Value="400" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Grid.Resources> 
    <StackPanel x:Name="TitleSlidesPanel" Grid.Row="0" 
       Orientation="Horizontal"> 
     <StackPanel Orientation="Vertical" 
      Height="245" 
       Width="400" > 

      <Image x:Name="img1" VerticalAlignment="Top" 
       HorizontalAlignment="Left" 
       RenderOptions.BitmapScalingMode="HighQuality" 
       Style="{StaticResource imageStyle}" 
       MouseDown="Img1_OnMouseDown" 
       MouseUp="Img1_OnMouseUp"> 
      </Image> 
      <CheckBox x:Name="Chkbox1" 
       Content="Image1" 
         Width="100" 
         HorizontalContentAlignment="Left" 
       HorizontalAlignment="Left" 
       VerticalContentAlignment="Center" 
       FontSize="12" 
       Margin="0,5,0,0" 
       Foreground="Black" 
       Height="20"> 
      </CheckBox> 
     </StackPanel> 
     <StackPanel Orientation="Vertical" 
        Height="245" 
       Width="400" 
        Margin="-400,0,0,0" > 

      <Image x:Name="Img2" VerticalAlignment="Top" 
       HorizontalAlignment="Right" 
       RenderOptions.BitmapScalingMode="HighQuality" 
       Style="{StaticResource imageStyle}" 
       MouseDown="Img2_OnMouseDown" 
       MouseUp="Img2_OnMouseUp" > 
      </Image> 
      <CheckBox x:Name="Chkbox2" 
       Content="Image2" 
       FontSize="12" 
       Margin="0,5,135,0" 
       HorizontalContentAlignment="Right" 
       HorizontalAlignment="Right" 
       VerticalContentAlignment="Center" 
       Foreground="Black" 
       Height="20"> 
      </CheckBox> 
     </StackPanel> 
    </StackPanel> 
</Grid> 
+0

嘿,谢谢你的回应。但是,这并没有奏效。我试过了。 – user1105705 2013-03-25 08:16:44