我的 WPF 程序使用具有 WPF 地图控件的第三方地图包。我的程序需要能够在没有安装此软件的系统上运行,并且需要足够智能以识别何时安装和使用该软件。这意味着我不能在表单的 XAML 文件中包含任何用于映射控件的 XAML,否则会引发 XAML 解析异常。
我有一种技术可以确定是否安装了软件。在我的程序的初始化代码中,MapsAreInstalled
如果安装了映射软件,我将 Application 对象的一个属性设置为 true,如果没有安装,我将其设置为 false。
在我的 UserControl 表单中,我添加了 OnApplyTemplate 方法的覆盖。这将检查MapsAreInstalled
属性的值并在值为 true 时创建一个新的地图控件。这是我用来创建此控件的 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
事件处理程序之外的代码中初始化所有这些属性。如何在代码隐藏中进行设置?
托尼