XAMLのパスワードボックスにコンテンツを作成する方法は中央になりますか?

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

  •  02-01-2020
  •  | 
  •  

質問

私たちがその中に何かを入力するときに、中央に整列させるためのパスワードボックスの中でコンテンツを作成しようとしていますが、それを行うことができません。リンク

これはコードです:

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

これはWindows Storeアプリのためのものです。 しかし、彼らがどのようにしているのかわからない。誰かがこれに答えることができれば感謝します。

役に立ちましたか?

解決

問題はパスワードボックスで存在するようです。スタイル。ルート境界要素にはTemplateBindingsがありません。

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

カプセル化グリッドを追加したり、このような境界線の横合わせを変更してみてください。

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

その後、スタイルを統計ファイルとしてロードします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top