1

私の 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イベント ハンドラーを除くコード ビハインドでこれらすべてのプロパティを初期化する方法を知っています。コードビハインドでこれを設定するにはどうすればよいですか?

トニー

4

1 に答える 1

4

私はこれに対する答えを見つけました:

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

とにかくありがとう。

于 2012-05-31T20:14:07.640 に答える