2010-12-30 19 views
9

Tôi muốn tăng kích thước của điều khiển bất cứ khi nào người dùng di chuột.
Sự gia tăng kích thước không nên điều chỉnh các điều khiển khác, chứ không phải sự kiểm soát hiện tại nên chồng chéo các điều khiển lân cận như là trường hợp với (tab hình ảnh) google tìm kiếm hiển thị dưới đây:WPF: Trên Chuột di chuột lên một điều khiển cụ thể, tăng kích thước của nó và chồng lên nhau trên các nút điều khiển khác

alt text

Những hình ảnh với sự chồng chéo đường viền màu đỏ các hình ảnh khác.

Trả lời

11

Bạn có thể sử dụng ScaleTransform trong RenderTransform trên IsMouseOver. Nếu bạn muốn tính tỷ lệ được thực hiện từ Trung tâm điều khiển, bạn có thể sử dụng RenderTransformOrigin="0.5,0.5". Ngoài ra, có thể bạn sẽ cần phải đặt ZIndex trong Trình kích hoạt để đảm bảo nó được hiển thị trên đầu trang của các Điều khiển khác. Ví dụ với một TextBlock

Cập nhật
Hãy thử nó như

<ItemsControl Margin="50"> 
    <ItemsControl.Resources> 
     <Style x:Key="ScaleStyle" TargetType="TextBlock"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Grid.ZIndex" Value="1"/> 
        <Setter Property="RenderTransform"> 
         <Setter.Value> 
          <ScaleTransform ScaleX="1.1" ScaleY="1.1"/> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ItemsControl.Resources> 
    <TextBlock Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" Text="Something.." Background="Red" Height="20"/> 
    <TextBlock Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" Text="TextBlock2" Background="DarkBlue" Height="20"/> 
    <TextBlock Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" Text="TextBlock3" Background="DarkBlue" Height="20" Foreground="White"/> 
    <TextBlock Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" Text="TextBlock4" Background="DarkBlue" Height="20" Foreground="White"/> 
</ItemsControl> 
+0

Cảm ơn .. này hoạt động. –

+0

Hình ảnh đính kèm hiển thị một số thông tin bổ sung khi di chuột qua hình ảnh ... Làm thế nào điều này có thể được thực hiện ..? –

+0

@Sudhakar Singh: Đây là một câu hỏi khá khó trả lời mà không biết chi tiết cụ thể. Bạn có thể sử dụng một UserControl/CustomControl, nơi bạn chỉ hiển thị các chi tiết trên IsMouseOver. Một cách tiếp cận khác là chỉnh sửa Mẫu cho TextBlock (hoặc điều khiển bạn sử dụng) và thêm thông tin bổ sung vào đó và chỉ hiển thị nó trên IsMouseOver. Xin vui lòng gửi một câu hỏi mới với các chi tiết của vấn đề của bạn nếu điều này không giúp bạn –

2

@Meleak này ... Bạn sẽ không có được hiệu quả cần thiết khi bạn đã nhiều TextBlocks chồng với nhau ....

cho ví dụ kiểm tra này:

<ItemsControl> 
    <TextBlock Text="Something.." Background="Red" Height="20"> 
     <TextBlock.Style> 
      <Style TargetType="TextBlock"> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="RenderTransform"> 
          <Setter.Value> 
           <ScaleTransform ScaleX="2" ScaleY="2"/> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </TextBlock.Style> 
    </TextBlock> 
    <TextBlock Text="TextBlock2" Background="DarkBlue" Height="20" Foreground="White"></TextBlock> 
    <TextBlock Text="TextBlock3" Background="DarkBlue" Height="20" Foreground="White"></TextBlock> 
    <TextBlock Text="TextBlock4" Background="DarkBlue" Height="20" Foreground="White"></TextBlock> 
</ItemsControl> 
+0

Điều tôi cần là hiệu ứng chồng chéo của các điều khiển trên các điều khiển khác bất cứ khi nào chuột được di chuột. –

+1

Cập nhật câu trả lời của tôi. Có phải đó là thứ bạn tìm? –

3

Đối với một hiệu ứng đổ bóng, cùng với đưa ra hình ảnh một sự liên kết ngang:

<ItemsControl Margin="50,200,50,0"> 
     <ItemsControl.Resources> 
      <Style x:Key="ScaleStyle" TargetType="Image"> 
       <Style.Triggers> 
        <Trigger Property="IsMouseOver" Value="True"> 
         <Setter Property="Grid.ZIndex" Value="1"/> 
         <Setter Property="RenderTransform"> 
          <Setter.Value> 
           <ScaleTransform ScaleX="1.1" ScaleY="1.5" /> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </ItemsControl.Resources> 

     <Image Height="100" Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="100" Source="D:\Cablevision\Cable Vision RFP DOCs\WpfApplication1\WpfApplication1\square-house-design.jpg" MouseDown="image1_MouseDown"> 
       <Image.BitmapEffect> 
      <DropShadowBitmapEffect Color="Black" Direction="320" 
    ShadowDepth="25" Softness="1" Opacity="0.5"/> 
      </Image.BitmapEffect> 
     </Image> 


     <Image Height="100" Margin="110,-100,0,0" Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Name="image2" Stretch="Fill" VerticalAlignment="Top" Width="100" Source="D:\Cablevision\Cable Vision RFP DOCs\WpfApplication1\WpfApplication1\file.jpg" > 
         <Image.BitmapEffect> 
      <DropShadowBitmapEffect Color="Black" Direction="320" 
    ShadowDepth="25" Softness="1" Opacity="0.5"/> 
      </Image.BitmapEffect> 
     </Image > 
     <Image Height="100" Margin="220,-100,0,0" Style="{StaticResource ScaleStyle}" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Name="image3" Stretch="Fill" VerticalAlignment="Top" Width="100" Source="D:\Cablevision\Cable Vision RFP DOCs\WpfApplication1\WpfApplication1\file.jpg" MouseEnter="image1_MouseEnter" MouseLeave="image1_MouseLeave" /> 



    </ItemsControl> 
Các vấn đề liên quan