【发布时间】:2023-07-11 21:15:01
【问题描述】:
以下行为 xaml 有什么问题,在运行时没有任何反应(甚至没有异常)。我正在尝试在没有逻辑代码的情况下关闭弹出窗口。
<AppBarButton HorizontalAlignment="Left"
Label="Pin to dashboard"
x:Name="pinBtn">
<AppBarButton.Flyout>
<Flyout x:Name="flyout"
Placement="Full">
<StackPanel x:Name="stackPanel"
HorizontalAlignment="Center"
VerticalAlignment="Top">
<TextBlock Text="Save as"
HorizontalAlignment="Center"
FontSize="16" />
<TextBox Width="275"
Style="{StaticResource RoundedTextBox}"
FontFamily="Global User Interface" />
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center">
<Button Content="Save"
Width="50" />
<Button x:Name="button"
Content="Cancel"
Width="50"
Margin="10,0,0,0">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior x:Name="eventTriggerBehavior" EventName="Click">
<Core:CallMethodAction TargetObject="{Binding Flyout, ElementName=pinBtn}"
MethodName="Hide" />
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</Button>
</StackPanel>
</StackPanel>
</Flyout>
</AppBarButton.Flyout>
</AppBarButton>
【问题讨论】:
-
你在Interactivity:Interaction.Behaviors中没有提到什么是“核心”。您正在使用哪个库。可能是个问题。
-
您可以使用 TargetObject="{Binding ElementName=flyout}" 而不是 TargetObject="{Binding Flyout, ElementName=pinBtn}"。你的名字也是小写的:x:Name="flyout"。我认为这很重要。但无论如何它都不起作用。所以我在文件后面的代码中使用 Click="..." 按钮处理程序