Windows Phone 7の在庫ページと同様の設定ページを作成する方法は?

Windows Phone設定アプリを起動すると、各ページに多数の項目があるピボットコントロールが表示されます。たとえば、最初の項目は次のとおりです。

THEME
blue

これらのアイテムを作成する標準的な方法は何ですか?私は彼らに同じフォントスタイルと外観を持たせたい。上記の項目を表すコントロールはありますか?

ありがとう!

1
私は物事をクリアするために私の答えに簡単なコード例を追加しました.. :)
追加された 著者 Abbas,

3 答え

ListBoxコントロールとeacht項目のDataTemplateです。テンプレートは、2つのTextBoxコントロールを定義します.1つは「タイトル」、もう1つは「説明/値」です。各TextBoxのスタイルを設定できます。

Edit: here's an example code


    
        
            
                
                
            
        
    

3
追加された
ありがとう、アッバス。それは正しい方向に私を指摘しましたが、あなたが指定したスタイルは、設定アプリで使用されているスタイルと同じではありません。私はあなたにそれのためにいくつかの評判のポイントを与えました:)
追加された 著者 swinefeaster,

これをピクセル単位で2時間プレイした後、ペイントプログラムを使ってスクリーンショットを実際のものと並べて比較すると(より良い方法があるはずです)、次の解決策を見つけました。

ここで設定ページが正確に複製されます。私はxamlに項目を追加するのが簡単なので、カスタムのユーザーコントロールを作成しました:


コードは次のとおりです:

SettingsItem.xaml.cs

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace MyApp
{
 //This custom control class is to show a standard item in a settings page.

  public partial class SettingsItem : UserControl
  {
    private const string TAG = "SettingsItem";

    public SettingsItem()
    {
     //Required to initialize variables
      InitializeComponent();
    }

    public static readonly DependencyProperty LabelProperty =
        DependencyProperty.Register(
            "Label",
            typeof(string),
            typeof(SettingsItem),
            new PropertyMetadata(new PropertyChangedCallback
              (OnLabelChanged)));

    public string Label
    {
      get
      {
        return (string)GetValue(LabelProperty);
      }
      set
      {
        SetValue(LabelProperty, value);
      }
    }

    private static void OnLabelChanged(DependencyObject d,
      DependencyPropertyChangedEventArgs e)
    {
      SettingsItem item = (SettingsItem)d;
      string newValue = (string)e.NewValue;
      item.m_label.Text = newValue.ToLower();
    }

    public static readonly DependencyProperty SubProperty =
        DependencyProperty.Register(
            "Sub",
            typeof(string),
            typeof(SettingsItem),
            new PropertyMetadata(new PropertyChangedCallback
              (OnSubChanged)));

    public string Sub
    {
      get
      {
        return (string)GetValue(SubProperty);
      }
      set
      {
        SetValue(SubProperty, value);
      }
    }

    private static void OnSubChanged(DependencyObject d,
      DependencyPropertyChangedEventArgs e)
    {
      SettingsItem item = (SettingsItem)d;
      string newValue = (string)e.NewValue;
      item.m_sub.Text = newValue;
    }
  }
}

SettingsItem.xaml



  

    

      

      

    
  

ここにxamlというページがあります:



    <!--LayoutRoot is the root grid where all page content is placed-->
    

        <!--Pivot Control-->
        

            
                
                    

                        

                        

                        

                    

                
            

        
    


2
追加された

私のおすすめ:

<button>
<button.Template>
    
        
            
            
        
    

1
追加された