2012-01-28 11 views
1

ユーザーが選択した後に電話の画面でリストピッカーが占めるスペースを減らす必要があります。選択した項目の幅を減らすことはできますが、高さを減らす方法はありませんでした。はい、私はコントロールのサイズを減らすことができますが、ヘッダーは常に35単位をとり、選択した項目のパネルの高さは70です。リストピッカーの高さを下げると、見た目は小さくなりますが、選択された項目が表示されるパネル。テキストはまだ中央に配置されています。 VerticalContentAlignmentを設定しても効果はありません。そのため、高さが低くなるにつれてテキストが徐々に不明瞭になります。選択した項目が表示されるパネルの高さを減らす方法、または選択したテキストの配置をパネルの上部に移動し、テキストを表示していない下部を空白にする方法はありますか?Silverlightで選択した項目の高さを設定する方法Windows PhoneのListPicker

答えて

1

これは簡単にExpression Blendのでテンプレートを作成することによって行うことができるものです -

  1. Expression Blendのでプロジェクトを開きます。
  2. ListPickerでページに移動します。
  3. [オブジェクトとタイムライン]ボックスで、ListPickerを見つけます。
  4. 右クリックして、[テンプレートの編集 - >コピーの編集 - >使用する名前を入力し、[定義] - > [アプリケーション]を選択し、[OK]を押します。
  5. [オブジェクトとタイムライン]ボックスの[グリッド]をクリックします。 [プロパティ]ボックスに新しい高さを入力します。私は36を使用しました。
  6. ボーダーを拡張する
  7. UserControlをクリックします。プロパティウィンドウで
  8. 、小さなサイズに19 PTからフォントサイズを変更(12ポイント)テンプレートを作成したことを今
  9. 、あなたはそうのようなあなたのlistpickersのすべてに適用する必要があります:
<toolkit:ListPicker Style="{StaticResource ListPickerStyle1}"/> 

ソースがあります。

<Style x:Key="ListPickerStyle1" TargetType="toolkit:ListPicker"> 
       <Setter Property="Background" Value="{StaticResource PhoneTextBoxBrush}"/> 
       <Setter Property="Foreground" Value="{StaticResource PhoneTextBoxForegroundBrush}"/> 
       <Setter Property="BorderBrush" Value="{StaticResource PhoneTextBoxBrush}"/> 
       <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/> 
       <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/> 
       <Setter Property="HorizontalContentAlignment" Value="Left"/> 
       <Setter Property="Margin" Value="{StaticResource PhoneTouchTargetOverhang}"/> 
       <Setter Property="PickerPageUri" Value="/Microsoft.Phone.Controls.Toolkit;component/ListPicker/ListPickerPage.xaml"/> 
       <Setter Property="Template"> 
        <Setter.Value> 
         <ControlTemplate TargetType="toolkit:ListPicker"> 
          <StackPanel> 
           <VisualStateManager.VisualStateGroups> 
            <VisualStateGroup x:Name="PickerStates"> 
             <VisualState x:Name="Normal"/> 
             <VisualState x:Name="Highlighted"> 
              <Storyboard> 
               <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Background" Storyboard.TargetName="Border"> 
                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxEditBackgroundColor}"/> 
               </ObjectAnimationUsingKeyFrames> 
               <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="Border"> 
                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneTextBoxEditBorderBrush}"/> 
               </ObjectAnimationUsingKeyFrames> 
              </Storyboard> 
             </VisualState> 
             <VisualState x:Name="Disabled"> 
              <Storyboard> 
               <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Background" Storyboard.TargetName="Border"> 
                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource TransparentBrush}"/> 
               </ObjectAnimationUsingKeyFrames> 
               <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="Border"> 
                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/> 
               </ObjectAnimationUsingKeyFrames> 
               <ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="Foreground" Storyboard.TargetName="UserControl"> 
                <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/> 
               </ObjectAnimationUsingKeyFrames> 
              </Storyboard> 
             </VisualState> 
            </VisualStateGroup> 
           </VisualStateManager.VisualStateGroups> 
           <ContentControl ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" Foreground="{StaticResource PhoneSubtleBrush}" FontSize="{StaticResource PhoneFontSizeNormal}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="0 0 0 8"/> 
           <Grid Height="36"> 
            <Border x:Name="Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"> 
             <UserControl x:Name="UserControl" Foreground="{TemplateBinding Foreground}" FontSize="16"> 
              <StackPanel> 
               <TextBlock x:Name="MultipleSelectionModeSummary" Margin="8 8 0 8"/> 
               <Canvas x:Name="ItemsPresenterHost" MinHeight="46"> 
                <ItemsPresenter x:Name="ItemsPresenter"> 
                 <ItemsPresenter.RenderTransform> 
                  <TranslateTransform x:Name="ItemsPresenterTranslateTransform"/> 
                 </ItemsPresenter.RenderTransform> 
                </ItemsPresenter> 
               </Canvas> 
              </StackPanel> 
             </UserControl> 
            </Border> 
           </Grid> 
          </StackPanel> 
         </ControlTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
+0

ありがとうございました。私の問題を解決しました。 – user640142

関連する問題