2011-10-18 5 views
1

WCF RIAサービスでSL4 Businessアプリケーションを使用しています。私のアプリには、loginFormがあります。私はユーザー名のテキストボックスとパスワードのテキストボックスを見つけることができるloginformのデザイナーです。しかし、.Xamlページの下に与えられたコードのように。SilverlightのLoginformのスタイルを設定する方法

<local:BusyIndicator x:Name="busyIndicator" BusyContent="{Binding Path=Strings.BusyIndicatorLoggingIn, Source={StaticResource ApplicationResources}}" 
         IsBusy="{Binding IsLoggingIn}"> 
     <StackPanel Orientation="Vertical"> 
      <toolkit:DataForm x:Name="loginForm" 
           Padding="10,0,10,0" 
           CurrentItem="{Binding}" 
           IsEnabled="{Binding IsLoggingIn, Converter={StaticResource NotOperatorValueConverter}}" 
           AutoEdit="True" CommandButtonsVisibility="None" HeaderVisibility="Collapsed" 
           AutoGeneratingField="LoginForm_AutoGeneratingField" 
           Style="{StaticResource LoginDataFormStyle}" /> 
     </StackPanel> 
    </local:BusyIndicator> 

私の質問は、データフォームのユーザー名のテキストボックスとパスワードのテキストボックスをスタイルする必要があります。これどうやってするの?どこからこれらのコントロールにアクセスできますか?

答えて

0

これらのコントロールは、DataFormコントロールによって生成されます。基本的に、ルートグリッドのリソースの下にTextBoxとPasswordBoxの既定のスタイルを配置する必要があります。私は彼らに50の大規模なフォントサイズを与えました。あなたはあなた自身のスタイルでそれらを置き換える必要があります。

<!-- LoginDataForm Style --> 
<Style x:Key="LoginDataFormStyle" TargetType="dataControls:DataForm"> 
    <Setter Property="Width" Value="370"/> 
    <Setter Property="AutoCommit" Value="True"/> 
    <Setter Property="AutoGenerateFields" Value="True"/> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="BorderThickness" Value="0"/> 
    <Setter Property="BorderBrush" Value="Transparent"/> 
    <Setter Property="DescriptionViewerPosition" Value="Auto"/> 
    <Setter Property="LabelPosition" Value="Auto"/> 
    <Setter Property="HeaderVisibility" Value="Collapsed"/> 
    <Setter Property="Padding" Value="0"/> 
    <Setter Property="Margin" Value="0,0"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="dataControls:DataForm"> 
       <Grid dataControls:DataField.IsFieldGroup="True"> 
        <Grid.Resources> 
         <Style TargetType="TextBox"> 
          <Setter Property="FontSize" Value="50"/>      
         </Style> 
         <Style TargetType="PasswordBox"> 
          <Setter Property="FontSize" Value="50"/>      
         </Style> 
         <Style x:Key="ButtonGeneric" TargetType="Button"> 

これが役に立ちます。 :)

0

フォームは自動的にフィールドを生成します(AutoGenerateFieldsプロパティはデフォルトでTrueに設定されています)。ただし、SilverlightビジネスアプリケーションテンプレートのLoginFormの場合、フォームにAutoGeneratingFieldsイベント(xamlに示すようにLoginForm_AutoGeneratingField)のハンドラがあります。このハンドラでは、ユーザ名のテキストボックスとパスワードボックスが作成され、データバインドされてフォームに追加されます。そこにジャンプして、そのプロパティを設定することで、必要なカスタマイズを行うことができます。

希望します。