|
[assembly: ExportRenderer(typeof(KeyDetector), typeof(KeyDetectorRenderer))]
namespace TreeViewXamarin.UWP
{
public class KeyDetectorRenderer : VisualElementRenderer<KeyDetector, FrameworkElement>
{
private KeyEventArgs KeyEventArgs;
public KeyDetectorRenderer()
{
KeyEventArgs = new KeyEventArgs();
this.KeyDown += KeyDetectorRenderer_KeyDown;
this.Tapped += KeyDetectorRenderer_Tapped;
}
private void KeyDetectorRenderer_Tapped(object sender, Windows.UI.Xaml.Input.TappedRoutedEventArgs e)
{
var grid = this.Element as KeyDetector;
if (grid != null)
{
KeyEventArgs.Key = "Dismiss";
grid.RaiseKeyPressed(KeyEventArgs);
}
}
private void KeyDetectorRenderer_KeyDown(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
{
var grid = this.Element as KeyDetector;
if(grid != null)
{
KeyEventArgs.Key = e.Key.ToString();
grid.RaiseKeyPressed(KeyEventArgs);
}
}
}
} |
|
private void KeyDetectorGrid_KeyPressed(object sender, KeyEventArgs e)
{
if (e.Key == "Escape" || e.Key == "Dismiss")
{
popupLayout.Dismiss();
}
} |