C# 如何在uwp中增加鼠标上gridviewitem的大小?
通常情况下,在鼠标上方会出现一个灰色边框,突出显示鼠标上方的gridviewitem。但是我想稍微增加gridviewitem的大小,就像鼠标离开时弹出一点一样,将其恢复到正常大小。请注意,大小/弹出窗口的增加不应干扰其他gridviewitems 我的代码目前非常基本:C# 如何在uwp中增加鼠标上gridviewitem的大小?,c#,xaml,windows-runtime,win-universal-app,windows-10-universal,C#,Xaml,Windows Runtime,Win Universal App,Windows 10 Universal,通常情况下,在鼠标上方会出现一个灰色边框,突出显示鼠标上方的gridviewitem。但是我想稍微增加gridviewitem的大小,就像鼠标离开时弹出一点一样,将其恢复到正常大小。请注意,大小/弹出窗口的增加不应干扰其他gridviewitems 我的代码目前非常基本: <GridView x:Name="contentGV" Margin="18,10,18,18" Width="Auto"> <GridVie
<GridView x:Name="contentGV" Margin="18,10,18,18"
Width="Auto">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel Margin="5,5,25,5" MaxWidth="145" Height="220">
<Grid Background="{Binding LogoBG}" CornerRadius="25" Height="120" Width="120">
<Border Height="120" Width="120" CornerRadius="25">
<Border.Background>
<ImageBrush ImageSource="{Binding LogoUrl}" />
</Border.Background>
</Border>
</Grid>
<TextBlock x:Name="Title"
MaxLines="2" Width="120"
Text="{Binding Title}" TextWrapping="WrapWholeWords"/>
</StackPanel>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
在我看来,没有完美的解决方案,因为如果我们对GridViewItem的大小进行重大更改,它将影响其他GridViewItem 解决方法之一是,我们可以在DataTemplate中更改网格的大小,这样看起来就像我们在GridViewItem上实现了一个弹出窗口 但是请注意,由于GridViewItem有一个灰色边框,并且大小固定,因此如果我们更改了很多网格,那么网格的内容可能会被截断。如果我们根据你的灰色边框对网格的大小做一点改变,效果会很好 为了改变网格的大小,一种方法是我们可以改变网格的高度和宽度。这样,它就不会改变其他控件在网格中的大小,例如文本的字体大小 另一种方法是,我们可以在网格上执行一次调整,并更改和以拉伸或收缩网格。这样,栅格内的其他控件也将被拉伸或收缩 我们可以使用VisualState或.cs代码来实现上述要求 我已经创建了一个示例,通过在网格上执行一个代码隐藏来实现它,在我处理移动操作的示例中,我使用了事件。我使用事件来处理move-leave操作,并将And值设置为1,以使GridViewItem返回到事件中的正常大小 XAML代码:
<GridView.ItemTemplate>
<DataTemplate>
<Grid PointerEntered="Grid_PointerEntered" PointerExited="Grid_PointerExited">
……
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
结果是:
谢谢。在我看来,没有完美的解决方案,因为如果我们对GridViewItem的大小进行重大更改,它将影响其他GridViewItem 解决方法之一是,我们可以在DataTemplate中更改网格的大小,这样看起来就像我们在GridViewItem上实现了一个弹出窗口 但是请注意,由于GridViewItem有一个灰色边框,并且大小固定,因此如果我们更改了很多网格,那么网格的内容可能会被截断。如果我们根据你的灰色边框对网格的大小做一点改变,效果会很好 为了改变网格的大小,一种方法是我们可以改变网格的高度和宽度。这样,它就不会改变其他控件在网格中的大小,例如文本的字体大小 另一种方法是,我们可以在网格上执行一次调整,并更改和以拉伸或收缩网格。这样,栅格内的其他控件也将被拉伸或收缩 我们可以使用VisualState或.cs代码来实现上述要求 我已经创建了一个示例,通过在网格上执行一个代码隐藏来实现它,在我处理移动操作的示例中,我使用了事件。我使用事件来处理move-leave操作,并将And值设置为1,以使GridViewItem返回到事件中的正常大小 XAML代码:
<GridView.ItemTemplate>
<DataTemplate>
<Grid PointerEntered="Grid_PointerEntered" PointerExited="Grid_PointerExited">
……
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
结果是:
谢谢。请参考此链接。我希望你在找那个?这一次,当你们改变物品的尺寸时,其他物品的尺寸会受到影响。在您的情况下,更好地使用listview我们无法在GridView中实现这一点,正如我们在listview中所看到的,其他项正在移动。我不想影响其他gridviewitems在这种情况下,弹出窗口应该覆盖在其他gridviewitems上。我想你可以覆盖gridviewitems的ItemsPanel。请参考此链接。我希望你在找那个?这一次,当你们改变物品的尺寸时,其他物品的尺寸会受到影响。在您的情况下,更好地使用listview我们无法在GridView中实现这一点,正如我们在listview中所看到的,其他项正在移动。我不想影响其他gridviewitems在这种情况下,弹出窗口应该覆盖在其他gridviewitems上。我想你可以覆盖gridviewitems的ItemsPanel谢谢!还有一件事,无论如何,我可以使过渡更顺利吗?网格也在变换,但正如你所看到的,它只是在右下方向上不断增大,有没有其他方法可以在所有方向上增大它,使其更加平滑?非常感谢!还有一件事,无论如何,我可以使过渡更顺利吗?网格也在变换,但正如你所看到的,它只是在右边和底部的方向上增加大小,有没有其他方法可以在所有方向上增加它,使其更加平滑?