Comment rendre le contenu dans une zone de mot de passe dans XAML pour être Centre?

StackOverflow https://stackoverflow.com//questions/25084557

  •  02-01-2020
  •  | 
  •  

Question

J'essaie de faire le contenu, dans une boîte de mot de passe pour aligner au centre, lorsque nous tapons quelque chose dans cela, mais je ne suis pas capable de le faire. J'ai essayé ce Lien

Ceci est le code:

<PasswordBox Grid.Row="4" Password="{Binding Password,Mode=TwoWay}" BorderBrush="Transparent" HorizontalAlignment="Center" Margin="0" FontSize="25" HorizontalContentAlignment="Center"  VerticalContentAlignment="Center"  VerticalAlignment="Center" Width="550" Height="90" PlaceholderText="password" >
    <PasswordBox.Background>
        <ImageBrush  ImageSource="/Assets/Login/text-field.png"   AlignmentY="Bottom"></ImageBrush>
    </PasswordBox.Background>
</PasswordBox>

Ceci est pour une application Windows Store . Mais je ne sais pas comment ils vont. Je serais reconnaissant si quelqu'un pouvait répondre à cela.

Était-ce utile?

La solution

Le problème semble mentir avec le PasswordboxStyle .L'élément frontière racine n'a pas de templatedbindings.

  <ControlTemplate TargetType="{x:Type PasswordBox}">
    <Border x:Name="Border"
            CornerRadius="2"
            Padding="2"
            BorderThickness="1">
      <Border.Background>
        <SolidColorBrush Color="{DynamicResource ControlLightColor}" />
      </Border.Background>
      <Border.BorderBrush>
        <SolidColorBrush Color="{DynamicResource BorderMediumColor}" />
      </Border.BorderBrush>
      <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
          <VisualState x:Name="Normal" />
          <VisualState x:Name="Disabled" />
          <VisualState x:Name="MouseOver" />
        </VisualStateGroup>
      </VisualStateManager.VisualStateGroups>
      <ScrollViewer x:Name="PART_ContentHost" />
    </Border>
  </ControlTemplate>

Essayez d'ajouter une grille d'encapsulation ou de modifier l'horizontallignement de la bordure à quelque chose comme ceci:

  <ControlTemplate TargetType="{x:Type PasswordBox}">
   <Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}">
    <Border x:Name="Border"
            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
            CornerRadius="2"
            Padding="2"
            BorderThickness="1">
      <Border.Background>
        <SolidColorBrush Color="{DynamicResource ControlLightColor}" />
      </Border.Background>
      <Border.BorderBrush>
        <SolidColorBrush Color="{DynamicResource BorderMediumColor}" />
      </Border.BorderBrush>
      <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
          <VisualState x:Name="Normal" />
          <VisualState x:Name="Disabled" />
          <VisualState x:Name="MouseOver" />
        </VisualStateGroup>
      </VisualStateManager.VisualStateGroups>
      <ScrollViewer x:Name="PART_ContentHost" />
    </Border>
   </Grid>
  </ControlTemplate>

puis chargez votre style en tant que statiqueResource

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top