【发布时间】:2014-05-12 13:37:12
【问题描述】:
我正在尝试创建一个带有两个按钮的自定义控件(例如)。我有一个看起来像这样的 Generic.Xaml 文件
<Style TargetType="local:DoubleButton">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:DoubleButton">
<Grid>
<Button x:Name="leftButton" Click="leftButtonClick" />
<Button x:Name="rightButton" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
DoubleButton 类如下所示:
public sealed class DoubleButton : Control
{
public DoubleButton()
{
this.DefaultStyleKey = typeof(DoubleButton);
}
public void leftButtonClick(object sender, RoutedEventArgs e)
{
MessageDialog dlg = new MessageDialog("message");
}
}
但是这个方法永远不会被调用。如果有人知道如何为自定义控件引发事件,那就太好了。
谢谢
【问题讨论】:
-
我在应用模板时通过 PART 执行此操作。我真的不知道这是否是批准的方式,但如果你有问题,你可以检查一下。
-
@GayotFow 感谢您提供信息。不管它是不是被批准的方式,它都有效。我在这个问题中记下了你的功劳。
-
干得好!如果有任何用途,我可以添加一个答案,其中包括 PART 的属性定义和正确声明。我想我也可以将它添加到社区 wiki。
-
@GrayotFow 我在 Google 上找不到太多与 PART 相关的内容以及它的作用,因此我在没有它的情况下制定了解决方案。但是,如果这是重要的事情,那么我相信我,遇到这个问题的下一个人会很棒。
-
@XAMlMAX,我将把它添加到社区 wiki,我们可以看看它以后有多少浏览量 :)
标签: c# xaml windows-8 windows-runtime winrt-xaml