MaskedTextBox taking only integer - wpf

I am using MaskedTextBox.I want my textbox to take only digits upto 7 numerics.It should not take any special character like ,.##,so on....I tried with "ddddddd" as mask but it allows decimal.So t works for decimal only.also tried with 000000
can anybody suggest for correct Mask.
:MaskedTextBox x:Name="TxtTutionFees"
Grid.Row="1"
Width="78"
Height="23"
Margin="142,40,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
AllowSign="False"
DecimalPrecision="2"
GroupNumerals="True"
InputMask="ddddddd"
IsEnabled="False"
PromptChar=" "
TextAlignment="Right"
GotFocus ="TextBox_GotFocus"/>

You can use MaskedTextBox from Extended WPF Toolkit.
If you will use this control your solution is following:
<xceed:MaskedTextBox x:Name="_maskedTextBox"
Mask="0000000"
ValueDataType="{x:Type s:Int32}" />
Where xceed and s are following namespaces:
xmlns:xceed="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:s="clr-namespace:System;assembly=mscorlib"

You could do this with an attached dependency property as in the answer Here. You can use this technique to filter out any characters that you don't want.

Related

WPF, Characters run from right-to-left when input text in TextBox

I have binding in TextBox
<TextBox x:Name="TbxActiveSourceNameSourceNameSourceName" IsEnabled="True" Text="{Binding ViewAudioAudio_ActiveSourceNameModel.ActiveSourceName_SourceName,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Padding="0,-2,0,0" Height="15" VerticalAlignment="top" Margin="127,10,0,0" FontSize="10" BorderBrush="#FF918D8D" TextAlignment="Center" Width="75px" HorizontalAlignment="Left" HorizontalContentAlignment="Right" />
But characters run from right-to-left.
How do I must to characters run from left-to-right(normal) when I input words in textBox
Many Thanks
I know this is old question but if anyone runs into this issue it happens to deal with
<TextBox Text={..., UpdateSourceTrigger=PropertyChanged}
it seems that when the property changes via keystroke it automatically detects the property change and so it updates the property it's binding to as well. Because of this it resets the cursor to the very left of the textbox rather than leaving where it was last left off.
Or at least I've been only able to reproduce this issue by changing a textbox to textblock and then back to a textbox and changing the UpdateSourceTrigger to a type that isn't PropertyChanged and would correct the issue and have the text flow right to left.
Set the FlowDirection property to LeftToRight. Reference here.

WPF NumberTextBox Allowing Decimals

I am having an issue with NumberTextBox. Below is the xaml code.
<cc:NumberTextBox
Margin="5,0,5,0"
HorizontalAlignment="Stretch"
IsEnabled="{Binding IsEditable}"
Style="{StaticResource TextBox_Default}"
TabIndex="25"
IsDecimalAllowed="True"
Text="{Binding ProductQuantity, ValidatesOnDataErrors=True, StringFormat={}{0:#.##}, UpdateSourceTrigger=PropertyChanged}" />
It should allow user to enter only 2 digits after the decimal. I tried to use StringFormat but it i snot working.
Example: 23.65567 it should allow user to enter only 23.65
Any suggestions to fix this issue.
Thanks in advance.
First of all, NumberTextBox is not a standard part of WPF. you should tag whatever library you are using for that element. then you will find more help here.
This link goes to a page where you can write your own NumberTextBox. As for digit limiting, just test for the "dot" and allow two more key-downs.
This link is an open source collection for numeric input control

WPF show small number beside all Controls

I have many FrameworkElements (TextBlock, CheckBox, ListBox..) and I would like to make something allowing me to show a small number besides every one control.
Some text ³
I came with the idea to write a MarkupExtension, where I could write that number like this:
..
<TextBlock Text="Some Text" SomeExtension="3" />
..
and then to add it somehow to the template of the Control.
But I'm sure, you guys have better solution for this problem ;)
One way to go with it would be create a Attached Property. Upon setting it on a control, a custom Adorner would be added for that control showing specified number.
Use the tag property to provide the number you want and inside the custom template databind to the property
<TextBlock Text="Some Text" Tag="3" />
and inside the controltemplate
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Tag}"/>

WPF - What to do when a Dependency Property is another Control in the XAML

I'm hoping this will be my last question today. I'm in a hurry and google is not helping much (that or I'm searching the wrong places).
I created some custom properties and behaviors so my RadioButtons can alter my labels Content and the mask of my TextBoxes.
I could pass a String as a property, but how do I pass another control as a property? (AdjustedLabel is of type Label)
<RadioButton i:CPF_CNPJAdjustBehavior.LabelContent="Apple" i:CPF_CNPJAdjustBehavior.AdjustedLabel="??????????" Content="CPF" Height="16" HorizontalAlignment="Left" Margin="30,216,0,0" Name="radioButton1" VerticalAlignment="Top" GroupName="a" IsChecked="True">
<int:Interaction.Behaviors>
<i:CPF_CNPJAdjustBehavior/>
</int:Interaction.Behaviors>
</RadioButton>
<Label Content="Label" Height="28" HorizontalAlignment="Left" Margin="20,81,0,0" Name="MyLabel" VerticalAlignment="Top" />
What do I have do write in "?????????" to set AdjustedLabel to the label named "MyLabel" ?
Thanks in Advance
Clark
AdjustedLabel="{Binding ElementName=MyLabel}" will do what you're searching for.
Consider reading some documentation for getting started with WPF, Bindings, Dependency Properties and XAML syntax. You could start with XAML Syntax In Detail, Dependency Properties Overview and Data Binding Overview.

Tools\addin's for formating or cleaning up xaml?

I'm guessing these don't exist since I searched around for these but I'm looking for a few tools:
1) A tool that cleans up my xaml so that the properties of elements are consistent through a file. I think enforcing that consistence would make the xaml easier to read. Maybe there could be a hierarchy of what comes first but if not alphabetical might work.
Example before:
TextBox Name="myTextBox1" Grid.Row="3" Grid.Column="1" Margin="4"
TextBox Grid.Column="1" Margin="4" Name="t2" Grid.Row="3"
Example after:
TextBox Name="myTextBox1" Grid.Row="3" Grid.Column="1" Margin="4"
TextBox Name="t2" Grid.Row="3" Grid.Column="1" Margin="4"
(note < /> has been remove from the above since control seem to have issues parsing whe the after section was added)
2) Along the same lines as above, to increase readability, a tool to align properties, so from the above code example similar props would start in the same place.
<TextBox Name="myTextBox1" Grid.Row="3" Grid.Column="1" Margin="4"/>
<TextBox Name="t2" Grid.Row="3" Grid.Column="1" Margin="4"/>
I know VS has default settings for XAML documents so props can be on one line or separate lines so maybe if there was a tool as described in (1) this would not be needed...but it would still be nice if you like your props all on one line.
3) A tool that adds X to the any of the Grid.Row values and Y to any of the Grid.Column values in the selected text. Every time I add a new row\column I have to go manually fix these. From my understanding Expression Blend can help with this but seem excessive to open Blend just to increment some numbers (and just don't grok Blend). Maybe vs2010 with the designer will help but right now I'm on VS08 and Silverlight.
Any one know of any tools to help with this?
Anyone planning to write something like this...I'm looking at you JetBrains and\or DevExpress.
Thanks.
Try out Kaxaml. It has a couple auto-formatting tools like this.

Resources