کنترل PasswordBox

در WPF کنترلی به نام PasswordBox وجود دارد که از نظر کارایی کاملاً شبیه به TextBox است ولی متنی که داخل آن تایپ می‌کنیم به صورت • (dot) نمایش داده می‌شود. همانطور که در بخش‌های قبلی بررسی کردیم، برای دریافت ورودی از کاربر در برنامه می‌توانیم از کنترل TextBox استفاده کنیم. از کنترل TextBox برای دریافت یک متن معمولی استفاده می‌شود، حال اگر بخواهیم پسورد را از کاربر دریافت کنیم باید چکار کنیم؟ به مثال زیر توجه کنید:

<StackPanel Margin="10">
    <Label>Text:</Label>
    <TextBox />
    <Label>Password:</Label>
    <PasswordBox x:Name="textBoxPassword"/>
</StackPanel>

زمانی که این برنامه را اجرا کنیم خروجی زیر را برای ما نمایش می‌دهد:

همانطور که در تصویر بالا نیز مشاهده می‌کنید در این برنامه یک TextBox و یک PasswordBox را در فرم قرار دادیم. متنی که داخل هر دو کنترل نوشته شده کاملاً یکسان است ولی در PasswordBox آن را به شکل • (dot) نشان می‌دهد. شما همچنین می‌توانید به جای dot از کاراکتر دلخواه خود نیز استفاده کنید. برای این منظور باید خاصیت PasswordChar را به کنترل اضافه کنید:

<PasswordBox PasswordChar="X" />

زمانی که برنامه را اجرا کنید به جای dot برای شما کاراکتر X را نشان می‌دهد:

همچنین شما می‌توانید محدودیتی را برای طول پسورد وارد شده در نظر بگیرید:

<PasswordBox MaxLength="6" />

در اینجا ما حداکثر طول را 6 در نظر گرفتیم، بنابراین کاربر نمی‌تواند بیشتر از 6 کاراکتر را برای پسورد خود وارد کند. برای اینکه در کدهای سی شارپ به پسوردی که کاربر وارد کرده دسترسی داشته باشید، می‌توانید از خاصیت Password استفاده کنید. به مثال زیر توجه کنید:

<StackPanel Margin="10">
    <Label>Password:</Label>
    <PasswordBox Name="textBoxPassword"/>
    <Button Content="Show Password" Click="buttonShowPassword_Click" Margin="10" Width="100"/>
</StackPanel>

کدهای سی شارپ زیر را هم در سر برگ MainWindows.xaml.cs بنویسید:

private void buttonShowPassword_Click(object sender, RoutedEventArgs e)
{
    MessageBox.Show("Your Password is : " + textBoxPassword.Password);
}

زمانی که این برنامه را اجرا کنید خروجی زیر را برای شما نمایش می‌دهد:

در این برنامه یک PasswordBox با نام textBoxPassword و یک Button داریم که برای نمایش پسوردی است که کاربر در PasswordBox وارد می کند. همچنین برای دکمه‌ رویداد Click تعریف کردیم تا وقتی بر روی آن‌ کلیک شد، عملیات مورد نظر ما را انجام دهند. همانطور که در کدهای سی شارپ این برنامه نیز مشاهده می‌کنید، با استفاده از خاصیت Password، هم می‌توانیم پسورد ذخیره شده در PasswordBox را نمایش دهیم. اما استفاده از خاصیت Password در برنامه‌هایی که امنیت آن برای شما اهمیت دارد توصیه نمی‌شود.