Как оформить логинформ приложения Silverlight Business - PullRequest
1 голос
/ 18 октября 2011

Я использую приложение SL4 Business с сервисом WCF RIA.В моем приложении есть loginForm.в конструкторе формы входа я могу найти текстовое поле имени пользователя и текстовое поле пароля. Но на странице .Xaml это похоже на приведенный ниже код.

 <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>

Мой вопрос заключается в том, что мне нужно стилизовать текстовое поле имени пользователя и текстовое поле пароляв форме данных.Как я могу это сделать?Откуда я могу получить доступ к этим элементам управления?

Ответы [ 2 ]

0 голосов
/ 18 октября 2011

Форма автоматически создает поля для вас (по умолчанию для свойства AutoGenerateFields установлено значение True).Однако в случае LoginForm в шаблоне бизнес-приложения Silverlight форма имеет обработчик для события AutoGeneratingFields (LoginForm_AutoGeneratingField, как показано в xaml).В этом обработчике текстовое поле имени пользователя и поле пароля создаются, привязываются к данным и добавляются в форму.Вы можете перейти туда и выполнить необходимые настройки, установив их свойства.

Надеюсь, это поможет:)

0 голосов
/ 18 октября 2011

Эти элементы управления создаются элементом управления DataForm. В основном вам нужно поместить стиль по умолчанию для TextBox и PasswordBox в корневой ресурс Grid. Я дал им огромный размер шрифта 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">

Надеюсь, это поможет. :)

...