توی WPF سی شارپ چطور میشه بدون استفاده از Component به TextBox ها ماسک داد. مثلا برای تاریخ یا شماره تلفن
برای این کار میتونید چندین ایده مختلف رو پیاده سازی کنید. یکی از ایده هایی که به ذهن من میرسه اینه که مثلا شما یک TextBox روی پنجره خودتون قرار بدید و در رویداد TextChanged اون بیاید و کنترل کنید که مثلا اگر طول متن وارد شده به TextBox دقیقا 4 کاراکتر بود یک علامت / بذاره. (برای تاریخ میتوانید این کار رو انجام بدید.)
کدهای xaml برای این کار :
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="200" Width="350">
<Grid>
<TextBox HorizontalAlignment="Left" Height="23" Margin="82,46,0,0" TextWrapping="Wrap" Name="txt1" TextChanged="TextBox_TextChanged" VerticalAlignment="Top" Width="178"/>
</Grid>
</Window>
کدهای BackEnd
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (txt1.Text.Length == 4)
{
txt1.Text += "/";
txt1.CaretIndex = txt1.Text.Length;
txt1.ScrollToEnd();
txt1.Focus();
}
if (txt1.Text.Length == 7)
{
txt1.Text += "/";
txt1.CaretIndex = txt1.Text.Length;
txt1.ScrollToEnd();
txt1.Focus();
}
}
الان اگر پروژه رو اجرا کنید یه چیزی مشابه با کامپوننت تاریخ پیاده سازی شده. البته خب خیلی کنترلهای دیگه هم باید انجام بشه برای چنین کاری. این فقط یه ایده است که میتونه تکمیل بشه.
نمونه انجام شده رو در زیر ببینید
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
350
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
319
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4270
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4283
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
3876
- پاسخ :
5
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
662
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3174
- پاسخ :
2
|
تاریخ :
1398/09/08
- ساعت :
11:38:00 PM
- بازدید :
3251
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
79
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
112
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|