2010-07-22 2 views
2

Я использую бета-версию Microsoft Windows Phone 7 Tools.Укладка пользовательского телефона Windows 7 Управление

У меня есть пользовательский элемент управления, который живет в своем собственном проекте со следующим кодом:

public class ValidationTextBox : TextBox 
{ 
     public ValidationTextBox() 
     { 
      DefaultStyleKey = typeof(ValidationTextBox); 
     } 
} 

Тогда мой WP7 App содержит следующий стиль в App.xaml

<Application.Resources> 
     <Style TargetType="my:ValidationTextBox"> 
      <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/> 
      <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/> 
      <Setter Property="Background" Value="Red"/> 
      <Setter Property="Foreground" Value="{StaticResource PhoneContrastForegroundBrush}"/> 
      <Setter Property="BorderBrush" Value="{StaticResource PhoneBorderBrush}"/> 
      <Setter Property="SelectionBackground" Value="{StaticResource PhoneAccentBrush}"/> 
      <Setter Property="SelectionForeground" Value="{StaticResource PhoneContrastBackgroundBrush}"/> 
      <Setter Property="CaretBrush" Value="{StaticResource PhoneTextCaretBrush}"/> 
      <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/> 
      <Setter Property="Padding" Value="2"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="my:ValidationTextBox"> 
         <Grid Background="Transparent"> 
          <VisualStateManager.VisualStateGroups> 
           <VisualStateGroup x:Name="CommonStates"> 
            <VisualState x:Name="Normal"/> 
            <VisualState x:Name="MouseOver"/> 
            <VisualState x:Name="Disabled"> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EnabledBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Collapsed</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="DisabledOrReadonlyBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Visible</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </VisualState> 
            <VisualState x:Name="ReadOnly"> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="EnabledBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Collapsed</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="DisabledOrReadonlyBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0"> 
                <DiscreteObjectKeyFrame.Value> 
                 <Visibility>Visible</Visibility> 
                </DiscreteObjectKeyFrame.Value> 
               </DiscreteObjectKeyFrame> 
              </ObjectAnimationUsingKeyFrames> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="DisabledOrReadonlyBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneSubtleBrush}"/> 
              </ObjectAnimationUsingKeyFrames> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="DisabledOrReadonlyBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneSubtleBrush}"/> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </VisualState> 
           </VisualStateGroup> 
           <VisualStateGroup x:Name="FocusStates"> 
            <VisualState x:Name="Focused"> 
             <Storyboard> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="EnabledBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneContrastBackgroundBrush}"/> 
              </ObjectAnimationUsingKeyFrames> 
              <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="EnabledBorder"> 
               <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneContrastBackgroundBrush}"/> 
              </ObjectAnimationUsingKeyFrames> 
             </Storyboard> 
            </VisualState> 
            <VisualState x:Name="Unfocused"/> 
           </VisualStateGroup> 
          </VisualStateManager.VisualStateGroups> 
          <Border x:Name="EnabledBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Margin="{StaticResource PhoneTouchTargetOverhang}"> 
           <ScrollViewer x:Name="ContentElement" BorderThickness="0" Margin="3,2" Padding="{TemplateBinding Padding}" Template="{StaticResource PhoneScrollViewerNoScrollBars}"/> 
          </Border> 
          <Border x:Name="DisabledOrReadonlyBorder" BorderBrush="{StaticResource PhoneDisabledBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Margin="{StaticResource PhoneTouchTargetOverhang}" Visibility="Collapsed"> 
           <TextBox Background="Transparent" Foreground="{StaticResource PhoneDisabledBrush}" IsReadOnly="True" SelectionForeground="{TemplateBinding SelectionForeground}" SelectionBackground="{TemplateBinding SelectionBackground}" TextAlignment="{TemplateBinding TextAlignment}" TextWrapping="{TemplateBinding TextWrapping}" Text="{TemplateBinding Text}" Template="{StaticResource PhoneDisabledTextBoxTemplate}"/> 
          </Border> 
         </Grid> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Application.Resources> 

Часть XAML страницы который инициирует управление, инициирует его следующим образом:

<my:ValidationTextBox InputScope="PersonalGivenName" Grid.Column="1" Grid.Row="0" x:Name="tbFirstName" Height="70" VerticalAlignment="Center" MaxLength="50" /> 

Когда я запускаю приложение, элемент управления не отображается, это пусто.

Что я делаю неправильно?

+0

Hi Jonas, можете ли вы включить код или xaml, который создает экземпляр элемента управления, который не работает? –

+0

@Trees, я добавил его. Сообщите мне, если этого достаточно –

ответ

2

у вас есть две границы. Первый содержит ScrollViewer, который не имеет никакого содержания. Второй содержит TextBox, который должен демонстрировать содержание кроме того, что видимость границы устанавливается в разрушилась.

1

Вы пытались дать выражениям Blend a go? Это бесплатно скачать (часть Windows Developer Tools, которая должна быть в состоянии позволить вам сделать все ваши стайлинга работу с очень хорошей средой GUI.

эля econd half of the Hello Phone lab в с Windows Phone 7 Training Kit проходит через несколько основных вещей, которые вы можете делать с Blend.