Xaml 在UWP模板控件中注册RoutedEventHandler
我很难找到如何在UWP中注册RoutedEventHandler。我正在尝试编写一个模板控件,该控件具有与ContentDialog类似的事件属性:Xaml 在UWP模板控件中注册RoutedEventHandler,xaml,uwp,routed-events,template-control,Xaml,Uwp,Routed Events,Template Control,我很难找到如何在UWP中注册RoutedEventHandler。我正在尝试编写一个模板控件,该控件具有与ContentDialog类似的事件属性: PrimaryButtonClick="ClickEvent" 其中,在cs文件中定义了ClickEvent。我只是刚刚掌握了模板的诀窍,但我相信我想做一些类似这样的事情: <Button Content="{TemplateBinding PrimaryButtonText}" Click="{TemplateBinding Primar
PrimaryButtonClick="ClickEvent"
其中,在cs文件中定义了ClickEvent。我只是刚刚掌握了模板的诀窍,但我相信我想做一些类似这样的事情:
<Button Content="{TemplateBinding PrimaryButtonText}" Click="{TemplateBinding PrimaryButtonClick}"/>
目前,我所能找到的只是对此类代码的WPF版本的引用:
public static readonly RoutedEvent ValueChangedEvent =
EventManager.RegisterRoutedEvent("ValueChanged",
RoutingStrategy.Direct, typeof(RoutedPropertyChangedEventHandler<double>),
typeof(NumericBox));
public event RoutedPropertyChangedEventHandler<double> ValueChanged
{
add { AddHandler(ValueChangedEvent, value); }
remove { RemoveHandler(ValueChangedEvent, value); }
}
private void OnValueChanged(double oldValue, double newValue)
{
RoutedPropertyChangedEventArgs<double> args =
new RoutedPropertyChangedEventArgs<double>(oldValue, newValue);
args.RoutedEvent = NumericBox.ValueChangedEvent;
RaiseEvent(args);
}
public静态只读路由事件值changedevent=
EventManager.RegisterRoutedEvent(“ValueChanged”,
RoutingStrategy.Direct,类型(RoutedPropertyChangedEventHandler),
类型(数字框);
公共事件RoutedPropertyChangedEventHandler值已更改
{
添加{AddHandler(ValueChangedEvent,value);}
删除{RemoveHandler(ValueChangedEvent,value);}
}
私有void OnValueChanged(双旧值、双新值)
{
RoutedPropertyChangedEventArgs参数=
新RoutedPropertyChangedEventArgs(旧值、新值);
args.RoutedEvent=NumericBox.ValueChangedEvent;
RaiseEvent(args);
}
当然,类型已经改变了。有人能给我指出正确的方向吗?不幸的是,
RoutedEvent
(冒泡、隧道)的概念目前在UWP中不可用。但是,您可以只创建一个经典事件:
public event EventHandler PrimaryButtonClick;
protected void InnerButton_Click(object sender, EventArgs e)
{
PrimaryButtonClick?.Invoke( sender, e );
}
某些预定义事件可以冒泡,但在当前版本的UWP中尚不可能允许自定义事件冒泡。不幸的是,
RoutedEvent
(冒泡、隧道)的概念目前在UWP中不可用。但是,您可以只创建一个经典事件:
public event EventHandler PrimaryButtonClick;
protected void InnerButton_Click(object sender, EventArgs e)
{
PrimaryButtonClick?.Invoke( sender, e );
}
某些预定义事件可以冒泡,但在当前版本的UWP中还不能允许自定义事件冒泡。路由事件确实存在于UWP中。但就目前而言,它们并不像WPF中那样完整。例如,冒泡是可用的,但隧道是不可用的。如果为True,则以冒泡的形式出现。但我的意思是更具体地说,没有类似于
RoutedEvent
-的类型可用。没有RoutedEvent类型,好的。要明确预定义的UWP UI事件从孩子到家长冒泡,您的答案是正确的,应该标记为解决方案。我已经更新了我的答案,以提及冒泡:-)谢谢先生:-!)!路由事件确实存在于UWP中。但就目前而言,它们并不像WPF中那样完整。例如,冒泡是可用的,但隧道是不可用的。如果为True,则以冒泡的形式出现。但我的意思是更具体地说,没有类似于RoutedEvent
-的类型可用。没有RoutedEvent类型,好的。要明确预定义的UWP UI事件从孩子到家长冒泡,您的答案是正确的,应该标记为解决方案。我已经更新了我的答案,以提及冒泡:-)谢谢先生:-!)!