我正在尝试在带有内容对话框的数据透视项中实现密码框。我想知道使用pointerpressed单击数据透视项是否适合触发密码对话框?此外,一旦单击枢轴项,如何处理事件。谢谢。
XAML;
Title="Login"
PrimaryButtonText="OK"
SecondaryButtonText="Cancel"
PrimaryButtonClick="ContentDialog_PrimaryButtonClick"
SecondaryButtonClick="ContentDialog_SecondaryButtonClick">
<Grid>
<StackPanel>
<PasswordBox x:Name="passwordBox" Width="300" Height="30" PlaceholderText="Enter password" PasswordChar="*"
PasswordChanged="PasswordBox_PasswordChanged"/>
<TextBlock x:Name="statusText" Margin="3,10,2,10" Height="22"/>
</StackPanel>
</Grid>
更新 - 24-11-2017 我不确定这是否是验证我的密码的最佳方法。我也想知道content dialog
关闭后,我在哪里进一步扩展 XAML 代码?希望我在这里清楚地表达我的情况。谢谢。
<PivotItem Header="Settings" x:Name="settings" PointerPressed="settings_PointerPressed" >
<ContentDialog Title="Login" x:Name="loginDialog"
PrimaryButtonText="OK"
SecondaryButtonText="Cancel"
PrimaryButtonClick="OK_PrimaryButtonClick"
SecondaryButtonClick="Cancel_SecondaryButtonClick">
<Grid>
<StackPanel>
<PasswordBox x:Name="passwordBox" Width="300" Height="40" PlaceholderText="Enter PIN" PasswordChar="*"
PasswordChanged="passwordBox_PasswordChanged" IsPasswordRevealButtonEnabled="False">
<PasswordBox.InputScope>
<InputScope>
<InputScope.Names>
<InputScopeName NameValue="NumericPin"/>
</InputScope.Names>
</InputScope>
</PasswordBox.InputScope>
</PasswordBox>
<TextBlock x:Name="passwordStatus" Margin="3,10,2,10" Height="22"/>
</StackPanel>
</Grid>
</ContentDialog>
</PivotItem>
private async void settings_PointerPressed(object sender, PointerRoutedEventArgs e)
{
if(isPasswordGranted==false)
{
await loginDialog.ShowAsync();
//PasswordBox passwordBox = new PasswordBox();
//passwordBox.Header = "Enter password";
InputScope scope = new InputScope();
InputScopeName scopeName = new InputScopeName();
scopeName.NameValue = InputScopeNameValue.NumericPin; //default = Password
scope.Names.Add(scopeName);
passwordBox.InputScope = scope;
}
}
private void OK_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
if (passwordBox.Password == pinNumber)
{
passwordStatus.Text = "Password Granted!";
isPasswordGranted = true;
}
else pivot.SelectedItem = home;
}
private void Cancel_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
{
pivot.SelectedItem = home;
}