KeyTrigger
コントロール内で使用すると が起動しないことに気付きましたPopup
。
<UserControl x:Class="SilverlightBindingTest.iTest"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:ii="clr-namespace:Microsoft.Expression.Interactivity.Input;assembly=Microsoft.Expression.Interactions"
xmlns:ei="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions">
<Grid x:Name="LayoutRoot" Background="White">
<Popup IsOpen="True">
<i:Interaction.Triggers>
<ii:KeyTrigger Key="Enter">
<ei:ChangePropertyAction TargetName="alert" PropertyName="Visibility" Value="Visible" />
</ii:KeyTrigger>
</i:Interaction.Triggers>
<StackPanel>
<TextBox />
<TextBlock Text="hi" x:Name="alert" Visibility="Collapsed"/>
</StackPanel>
</Popup>
</Grid>
</UserControl>
ポップアップ部分を削除すると、これは期待どおりに機能します (Enter キーを押すと「hi」が表示されます)。
何が起きてる?KeyTrigger が失敗する理由が思いつきません。