Array
(
)

Maskedit no WPF

Ricardo Pulini
   - 21 jan 2011

Bom dia.   Alguém sabe alguma solução para colocar mascara num textbox em WPF? Similar ao Masedit text box.     Obrigado

Alejandro González
   - 05 mar 2011

Ricardo

è so usar um comtrole chamado passwordBox     Alejandro

Samuel Diogo
   - 09 mar 2011

Olá Ricardo, defina melhor o que é essa "mascara". Seria uma formatação do TextBox? como no meu exemplo abaixo?
<TextBox HorizontalAlignment="Left" Height="28" Margin="175,125,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="116" Background="White" BorderThickness="4"> <TextBox.BorderBrush> <LinearGradientBrush EndPoint="0,20" MappingMode="Absolute" StartPoint="0,0"> <GradientStop Color="#FFABADB3" Offset="0.05"/> <GradientStop Color="#FFE2E3EA" Offset="0.07"/> <GradientStop Color="#FF086697" Offset="1"/> </LinearGradientBrush> </TextBox.BorderBrush> <TextBox.Effect> <BlurEffect/> </TextBox.Effect>

Como você pode vê, é apenas um textBox totalmente formatado com efeito Blur, bordas mais grossas e com cor gradiente azul e branco.
Para fazer componentes com rico em formatações e sem muita complicação, eu uso o Microsoft Expression 4 Blend(Editor de Silverlight e WPF) e MS Expression 4 Design (ferramenta de Disigner proprio para WPF(Xaml), confesso que sou adepto ao lado negro da força: Micro$oft rsrsrsrs
Sds,Sam

Samuel Diogo
   - 09 mar 2011


Shii Ricardo viajei aqui... por favor me desculpe, é o efeito do Carnaval!!! agora que eu recordo o que é mask... 
bom, eu achei na net código chamado avalonControl, fiz uma application test aqui e funfou legal o recurso da mascara, entretanto como eu percebi, ele não cria um mask para textbox mas um textbox mascarado!!!
Bom, meu procedimento foi este:

  • Baixei o AvalonControl
  • Criei um novo projeto WPF no Visual Studio 2010 Ultimate
  • Na janela Solution Explorer, eu cliquei em cima do meu projeto com lado direito do mouse em "add reference", cliquei na aba browse, foi ao na pasta AvalonControl que previamente havia descompactado no meu desktop e segui este diretório: 
Desktop\Release V2\AvalonControlsLibrary\AvalonControlsLibrary\obj\Debug e selecionei o dll "AvalonControlsLibrary" ao meu projeto.
  • Depois deste trabalho todo, eu fui até ao meu arquivo xaml (no meu caso o MainWindow. xaml) e adicionei uma propriedade no campo   declarando o uso de controles do avalon na minha página:
xmlns:Controls="clr-namespace:AC.AvalonControlsLibrary.Controls;assembly=AvalonControlsLibrary"
uma coisa que muitos, talves não gostem, é que para adicionar o componte do avalon, terá que sempre usar o código, já que esses componentes não estão no toolBox...
eu sugiro sempre essa propriedade, depois é só ir no modo view, ou no blend e formatar o código:
<Controls:MaskedTextBox Height="23" HorizontalAlignment="Center" VerticalAlignment="Center" Width="120" x:Name="txtMasked1"  Mask="(99)0000-0000" CharacterCasing="Upper"></Controls:MaskedTextBox>

Na propriedade mask é o lugar onde você declara qual mask usar, onde você pode usar as propriedades mais comuns, como:
  • Mask="90:00" para Hora
  • Mask="00/00/0000" para data
  • Mask="(99) 000-0000" para telefone

Espero ter lhe ajudado,
Sds,Sam
psEdit: segue abaixo meu codigo xaml:
o Compontent txtBox ai foi mais pra referencia em formatação rsrs
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        xmlns:Controls="clr-namespace:AC.AvalonControlsLibrary.Controls;assembly=AvalonControlsLibrary"     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"     x:Class="DevMediaHelp.MainWindow" x:Name="Window" Title="MainWindow" Width="640" Height="480">
<Grid x:Name="LayoutRoot">
        <Controls:MaskedTextBox Height="23" HorizontalAlignment="Center" VerticalAlignment="Center" Width="120" x:Name="txtMasked1"  Mask="(99)0000-0000" CharacterCasing="Upper"></Controls:MaskedTextBox>                        <TextBox Height="23" HorizontalAlignment="Left" Margin="273,380,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />                    </Grid></Window>