1

Silverlight テンプレートを使用してナビゲーション アプリを作成しました。Nowという名前の4つのタブがありますHome, About, Info, Mapsが、誰かを選択すると正常に動作しますが、どれが選択されているようには見えません。選択した 1 つのタブの色の変更がないため。

選択したタブの色を変更する方法を教えてください。

ありがとう

4

1 に答える 1

0

私はこれを自分で明示的にプレイしたことはありませんが、デフォルトのスタイルではこの動作があります

            <Border x:Name="LinksBorder" Style="{StaticResource LinksBorderStyle}">
                <StackPanel x:Name="LinksStackPanel" Style="{StaticResource LinksStackPanelStyle}">

                    <HyperlinkButton x:Name="Link2" Style="{StaticResource LinkStyle}" 
                                 NavigateUri="/About" TargetName="ContentFrame" Content="About"/>
                </StackPanel>
            </Border>

コードビハインド:

    // After the Frame navigates, ensure the HyperlinkButton representing the current page is selected
    private void ContentFrame_Navigated(object sender, NavigationEventArgs e)
    {
        //This is to hide/show the leftside menu
        ApplyConfiguration(ApplicationConfiguration.GetConfiguration());

        foreach (UIElement child in LinksStackPanel.Children)
        {
            HyperlinkButton hb = child as HyperlinkButton;
            if (hb != null && hb.NavigateUri != null)
            {
                if (hb.NavigateUri.ToString().Equals(e.Uri.ToString()))
                {
                    VisualStateManager.GoToState(hb, "ActiveLink", true);
                }
                else
                {
                    VisualStateManager.GoToState(hb, "InactiveLink", true);
                }
            }
        }
    }

goto 状態 Active から inactive に注目してください。このコードは、ナビゲーション Silverlight プロジェクトの既定のテンプレートから取得されます。スタイルの StaticResource を保持すると、問題が解決するはずです。次に、独自のスタイルを作成することができます

于 2012-04-23T17:50:28.097 に答える