wpf - 在 WPF 代码后面设置事件处理程序

标签 wpf xaml

我的WPF程序使用具有WPF map 控件的第三方 map 包。我的程序需要能够在没有安装该软件的系统上运行,并且需要足够智能来识别该软件何时安装并使用它。这意味着我无法在表单的 XAML 文件中包含 map 控件的任何 XAML,否则会引发 XAML 解析异常。

我有一种方法可以确定软件是否已安装。在我的程序的初始化代码中,如果安装了 map 软件,我将 Application 对象的一个​​名为 MapsAreInstalled 的属性设置为 true,如果未安装,则将其设置为 false。

在我的表单(UserControl)中,我添加了 OnApplyTemplate 方法的重写。这将检查 MapsAreInstalled 属性的值,如果该值为 true,则创建一个新的 map 控件。下面是我在必须改变方法之前用来创建此控件的 XAML:

<telogis:MapControl ButtonBase.Click="CarImage_Click"
                    Canvas.Left="0"
                    Canvas.Top="0"
                    Center="41.366674544084,-73.6112966322899"
                    DragBehavior="None"
                    Heading="0"
                    Height="{Binding ElementName=ChannelCanvas, Path=ActualHeight}"
                    MapQuality="Perfect"
                    Name="ReadMap"
                    Perspective="TwoD"
                    RenderLabels="True"
                    UiEnable="True"
                    Width="{Binding ElementName=ChannelCanvas, Path=ActualWidth}"
                    Zoom="50" />

我知道如何在代码背后初始化所有这些属性,除了 ButtonBase.Click 事件处理程序。如何在代码隐藏中进行设置?

托尼

最佳答案

我找到了这个问题的答案:

RoutedEventHandler clickHandler = MyClickHandler;
mapCtrl.AddHandler( ButtonBase.ClickEvent, clickHandler );

无论如何,谢谢。

关于wpf - 在 WPF 代码后面设置事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10840487/

相关文章:

DataTemplate 中的 WPF MVVM 按钮控件绑定(bind)

c# - WPF 是否可以显式调用动画反转?

c# - MVVMLight 具有对应 View 的多个实例键控 View 模型

c# - 如何避免重复 XAML?

wpf - WPF 应用程序框架 (WAF) 中的 MVVM Collection View

c# - 在数据模板中使用抽象类作为数据类型

wpf - 将 XPS 转换为 PDF(反之亦然)的最佳方法?

c# - WPF-如何使用ViewModel的ObservableCollection显示TabItem?

wpf - WPF/XAML : Typography.大写字母似乎没有任何效果

xaml - 隐藏时如何为弹出窗口设置动画?