0

5 つの境界線を持つサイド メニューと、アプリケーション画面 (ユーザー コントロール) を含むコンテンツ コントロールを持つウィザード アプリケーションを開発しています。

境界線のスタイルは、ユーザーがウィザードのステップのどこにいるかを示すものと想定されています。

私は 2 つの境界線スタイルを作成しました。最初のスタイルは、デフォルトですべての境界線に適用されるデフォルト スタイルです。2 つ目 (isFoucusedStyle) は、現在の画面に適した境界線で適用する必要があります。

たとえば、ウィザードが最初の画面を表示している場合: 最初の境界線は isFoucusedStyle を使用する必要があり、その他の境界線はデフォルト スタイルを使用する必要があります。ユーザーが次の画面に進むと、最初の境界線はデフォルトのスタイルに戻す必要があり、2 番目の境界線は isFoucusedStyle を適用するようになります。

次の方法で、リソースの下の mainWindow で xaml を介してページ インスタンスを作成します。

     xmlns:view="clr-namespace:App.View"
    xmlns:ViewModel="clr-namespace:App.ViewModel"

<Window.Resources>
    <DataTemplate DataType="{x:Type ViewModel:OpeningViewModel}">
        <view:OpeningView/>
   </DataTemplate>

    <DataTemplate DataType="{x:Type ViewModel:PersonalDataViewModel}">
        <view:PersonalDataView/>
    </DataTemplate>

    <DataTemplate DataType="{x:Type ViewModel:BusinessDataViewModel}">
        <view:BusinessDataView/>
    </DataTemplate>

    <DataTemplate DataType="{x:Type ViewModel:BusinessDataViewModel}">
        <view:BusinessDataView/>
    </DataTemplate>

また、ContentControlにバインドされたCurrentPageというプロパティもあります。ユーザーが「次のページボタン」をクリックすると、CurrentPageが更新され、ContentControlがUserControlに切り替わります。

境界線とユーザー コントロールとの間のバインディングはありません。私の現在の状態では、境界線は機能を持たない単なるビジュアル グラフィックです。

どうすれば実装できますか?

ありがとう

4

2 に答える 2

0

最初に、NavigationWindow (または NavigationFrame を含む) に基づいてウィザードを作成することを強くお勧めします。これにより、すべての前後のナビゲーションが無料で提供されます。また、必要に応じて、NavigationWindow のスタイルを変更して、より多くのウィザードに一致させることができます。インターフェイス ( WPF ウィザードを参照)。NavigationWindow/Frame は、ページ間の遷移を処理する Navigate() メソッドも提供します。

ナビゲーション リンク (5 つのサイド メニュー項目) を処理するために、各リンクを View レベルの ICommand にバインドします。この ICommand は、CanExecute の正しいページに既に必要かどうかをテストします。この境界線の設定は、{Binding CanExecute, Converter={BoolToColorConverter}}.

あなたの場合、あなたは単に同じことをすることができます。正しい CurrentPage があるかどうかを確認するコマンドをセットアップし、コンバーターを使用して上記のようにバインドします。

于 2012-09-24T14:19:48.567 に答える
0

「isFoucusedStyle」を取得し、baseOn のデフォルト スタイルに設定しました。Border.Focusable が true のときにオンになる isFoucusedStyle に triger を追加しました。現在のページ番号にアクセスできるコンバーターを作成しました。すべての境界で、フォーカス可能なプロパティをコンバーターにバインドし、適切なページ番号 (現在の境界線で表されるページ番号) と共に「コンバーター パラメーター」を送信しました。その結果、トリガーがオンになり (またはオフになり)、必要な境界線スタイルが設定されます。とにかくありがとう。

于 2012-09-24T14:11:24.987 に答える