uwp - 如何为游戏创建附加组件?
问题描述
我正在尝试为一个看起来有点像这样的游戏(Among Us)制作一个弹出窗口: 1 最后是这样的: 2 这样当你点击它时它会弹出一个侧面的小窗口,然后当您再次单击它时会崩溃(它会有一个功能,但我想我自己可以做到。我只是不知道从哪里开始)。如果它被“集成”到我们当中,我会更喜欢它,所以它会在同一个应用程序上打开,但除此之外,我很高兴每次都必须手动打开它并将其分开。如果有帮助,我有 Microsoft Visualizer。谢谢你。
解决方案
右折叠视图。我认为。
您可以使用Popup类来实现上述折叠视图。制作一个按钮作为打开指示器来打开或关闭此弹出窗口。如果您希望它顺利运行,您可以添加 Storyboard 以在按钮指示器上方设置动画。有关更多信息,请参阅以下代码。
<Page.Resources>
<SolidColorBrush x:Key="ButtonBackgroundPointerOver" Color="Transparent" />
<SolidColorBrush x:Key="ButtonBackgroundPressed" Color="Transparent" />
</Page.Resources>
<Grid x:Name="RootGrid">
<Popup
x:Name="RightMeun"
Width="200"
Height="{Binding ElementName=RootGrid, Path=ActualHeight}"
HorizontalAlignment="Right"
IsOpen="False">
<Popup.ChildTransitions>
<TransitionCollection>
<PaneThemeTransition Edge="Right" />
</TransitionCollection>
</Popup.ChildTransitions>
<Grid
Width="200"
Height="{Binding ElementName=RightMeun, Path=Height}"
Background="LightBlue">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="Hello" />
</Grid>
</Popup>
<Button
x:Name="MenuButton"
Margin="0,0,0,0"
HorizontalAlignment="Right"
Background="Transparent"
BorderThickness="0"
Click="Button_Click"
Content=""
FontFamily="Segoe MDL2 Assets"
RenderTransformOrigin="0.5,0.5">
<Button.Resources>
<ResourceDictionary>
<ColorPaletteResources
x:Key="Default"
BaseLow="LightGreen"
BaseMediumLow="DarkCyan" />
</ResourceDictionary>
</Button.Resources>
<Button.RenderTransform>
<CompositeTransform Rotation="180" />
</Button.RenderTransform>
</Button>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="Animation">
<VisualState x:Name="Close">
<Storyboard x:Name="CloseStoryboard">
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="RightMeun" Storyboard.TargetProperty="IsOpen">
<DiscreteObjectKeyFrame KeyTime="0" Value="False" />
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation
Storyboard.TargetName="MenuButton"
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)"
To="0"
Duration="0:0:0" />
<DoubleAnimation
Storyboard.TargetName="MenuButton"
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
To="180"
Duration="0:0:0.2" />
</Storyboard>
</VisualState>
<VisualState x:Name="Open">
<Storyboard x:Name="OpenStoryboard">
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="RightMeun" Storyboard.TargetProperty="IsOpen">
<DiscreteObjectKeyFrame KeyTime="0" Value="True" />
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation
Storyboard.TargetName="MenuButton"
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)"
From="0"
To="-200"
Duration="0:0:0" />
<DoubleAnimation
Storyboard.TargetName="MenuButton"
Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)"
To="0"
Duration="0:0:0.2" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid>
代码背后
private void Button_Click(object sender, RoutedEventArgs e)
{
if (RightMeun.IsOpen)
{
VisualStateManager.GoToState(this, "Close", true);
}
else
{
VisualStateManager.GoToState(this, "Open", true);
}
}
推荐阅读
- android - 按照 Mapbox 初学者教程返回“清单合并失败”错误
- sql - 将excel文件导入postgresql是否追加或覆盖
- java - 如何删除 java LinkedList 中的重复项?
- orocrm - OroCRM 中网格单元格的条件背景颜色
- virtualbox - 如何从 Balena 应用映像创建 VMware 或 VirtualBox 虚拟机?
- c - 为什么我们需要读写屏障?
- python - 优化函数以将数组中的每个值相互比较
- python - Variable's value changing unexpectedly during recursion (MERGE SORT)
- python - Django-Graphene: No module named 'graphql_jwt'
- google-chrome - Intl.NumberFormat“紧凑”不返回格式正确的数字