我有一个带有两个文本框的silverlight应用程序。当我专注于其中一个时,我想要弹出我的"虚拟"键盘出现(作品)。但是,问题是当我想要关闭弹出窗口时。我希望能够用我的" X"按钮(屏幕上的红色)。我该怎么做?我尝试了一切 - 委托,INotifyProperyChanged。似乎没什么用。在我的XAML代码中,您可以看到我无法访问MainPage中的任何按钮 - 仅来自自定义控件的代码。这就是问题所在。
<Grid x:Name="LayoutRoot" Background="#DB1E1E1E" Margin="0,0,-89,-114">
<TextBox x:Name="txt1"
HorizontalAlignment="Left" Height="23"
Margin="10,10,0,0" TextWrapping="Wrap"
Text="TextBox" VerticalAlignment="Top"
Width="398" GotFocus="txt1_GotFocus"/>
<TextBox
HorizontalAlignment="Left"
Height="23"
Margin="10,82,0,0"
TextWrapping="Wrap"
Text="TextBox"
VerticalAlignment="Top"
Width="398"/>
<Popup x:Name="popup" IsOpen="True" AllowDrop="True">
<Grid x:Name="theBack" Background="Black" Margin="80,196,114,24">
<Keyboard:KeyboardControl x:Name="keyboard" Margin="0,-10,0,10"/>
</Grid>
</Popup>
<Button x:Name="btn"
Content="Button"
HorizontalAlignment="Left"
Margin="508,114,0,0"
VerticalAlignment="Top"
Width="75"
Click="btn_Click"/>
</Grid>
答案 0 :(得分:0)
没有绑定:
在KeyboardControl.xaml.cs中为您的控件定义一个自定义处理程序,并为单击关闭按钮定义一个方法:
public event RoutedEventHandler CloseClick;
private void ButtonX_Click(object sender, RoutedEventArgs e)
{
if (CloseClick != null)
CloseClick(sender, e);
}
然后在KeyboardControl.xaml中使用先前创建的方法分配“X”按钮的“Click”事件
<Button Content="X" Click="ButtonX_Click"/>
然后在您的MainPage中更改KeyboardControl的布局:
最后在MainPage.xaml.cs中:
private void keyboard_CloseClick(object sender, RoutedEventArgs e)
{
popup.IsOpen = false;
}