|
To set the characters to upper case, set CharacterCasing.Upper on the textbox.
|
|
|
|
|
I am using the AutoCompleteBox from the WPF toolkit. This does not seem to have the CharacterCasing property.
|
|
|
|
|
You could have passed that vital nugget of information originally. When you post questions, you should give all the pertinent facts as we can't guess what you are using. Bear in mind that the WPF control is made up of constituent parts, what you need to do is find the templated part PART_EditableTextbox, and apply the character casing here. To do this, use something like this:
myComboBox.Template.FindName("PART_EditableTextbox", myComboBox) as TextBox;
|
|
|
|
|
Lol I tought the title said enough
Thanks for the tip but can you please give more code how to do it. I'm still trying to make ends meet with WPF.
|
|
|
|
|
Moonwalker031 wrote: I tought the title said enough
You thought wrong.
Moonwalker031 wrote: can you please give more code how to do it
Well, I gave you the code to find the template part. How hard can it be adding the CharacterCasing - I did the hard part for you.
Show me what code you've attempted.
|
|
|
|
|
Umm I told you I'm a beginner. I tried the following but got an Exception
TextBox txt;
txt = acb1.Template.FindName("PART_EditableTextbox", acb1) as TextBox;
txt.CharacterCasing = CharacterCasing.Upper;
I have not grasped what the Template.FindName is returning exactly.
|
|
|
|
|
1) you didn't bother to tell us what the exception was
2) I'm assuming the exception is because
a) AutoCompleteBox didn't name the part "PART_EditableTextbox"
OR
b) You called FindName too early (like in the constructor). What Pete didn't bother to tell you is that searching for a part through the template is only valid AFTER the template has been applied. Typically you would override OnApplyTemplate() (calling the base class first of course) and then do the above code.
Or why not modify the XAML directly? That would be the prefered solution if you are always going to want it upper case.
|
|
|
|
|
NullReference Exception - Object reference not set to an instance of an object.
I am calling the findname in the middle of the prog after the user has entered some parameters (in other textboxes).
Will try to modify the XML if I figure out the syntax.
|
|
|
|
|
my:AutoCompleteBox Style="{StaticResource acbStyle}" TextBoxStyle="{StaticResource acbTxtStyle}"
I managed to set the Casing to Upper in XAML by setting a textBox Style with Casing = Upper and the code above.
Thanks for the help as this is much simpler.
However I need to use the code method too. I need to move the cursor to the left or right depending on the input characters. Since Autocomplete box does not have a SelectionStart property I need to use the TextBox template again.
So can someone reply why I am getting a NullReference Exception when I use the code posted earlier?
|
|
|
|
|
Update -
Managed to fix all problems finally. The null Exception was showing because the property is named "Text" and not "PART_EditableTextBox" in AutocompleteBox. Thanks again.
One last question.
I am using the Populated Event to check if there are any items in the dropdown list. The list is given through PopulatedEventArgs with the Data property. Since this is IEnumerable type, what is the easiest way to check if the list is empty or not?
I worked around it be copying the data to a listbox and then checking the items count of the listbox. But this is not the best way for sure.
|
|
|
|
|
Using RowDetailsTemplate might be useful to implement nested datagrids.
For example, your normal datagrid might look like this.
<data:DataGrid Name="ParentDG" AutoGenerateColumns="False" RowDetailsVisibilityMode="VisibleWhenSelected">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="<<ColumnInfo>>" Binding="{Binding <<BindingInfo>>}" IsReadOnly="True" />
...
</data:DataGrid.Columns>
<data:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<data:DataGrid Name="NestedDG"></data:DataGrid>
</StackPanel>
</DataTemplate>
</data:DataGrid.RowDetailsTemplate>
</data:DataGrid>
Note that the RowDetailsVisibilityMode is set to "VisibleWhenSelected". Thus, whenever you click on a row in the datagrid, the content of rowdetailstemplate is displayed.
The only plumbing left now is to set the datasource of the inner-grid. You can do that by following these steps:
1. Create an event handler for "RowDetailsVisibilityChanged" event
ParentDG.RowDetailsVisibilityChanged += new EventHandler<datagridrowdetailseventargs>(ParentDG_RowDetailsVisibilityChanged);
2. Define the event handler to set the data-source for the inner-grid.
void ParentDG_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)
{
DataGrid nestedGrid = (DataGrid)e.DetailsElement.FindName("NestedDG");
if (e.Row.DetailsVisibility == Visibility.Visible)
{
nestedGrid.ItemsSource = <<Set the item source for the nested grid here>>;
}
}
Note that we obtian the nested grid from the DetailsElement and set the item source for the nested datagrid.
SOURCE : By implementation in my project and also Silverlight Official Forum
|
|
|
|
|
Thank you for posting this, but as you've posted this in a Q and A forum, there will come a point where this disappears from the front page. A better approach would be for you to convert this into a Tip/Trick here on the site.
|
|
|
|
|
Hi everyone,
My question is regarding XAML.
If I have to design the GUI, I can either drag and drop the controls onto the page and adjust them accordingly OR in xaml I can use the grid rows and columns sizes, etc and place the controls in there...
Question:
It seems to me that drag and drop seems easier than playing with the rowand column definitions, etc...
So, what is the benefit of doing the design in xaml with the grid and column and rows definitions?
Thank you
|
|
|
|
|
In my view, you can drag drop a control more easily to the form. But when it comes to applying some styles to those controls XAML is much better.
Also some things like Gradient are much better and easier to play using XAML.
Looking for others' reply on this thread..
Hope this helps.
All the best.
|
|
|
|
|
Drag and drop layout is often OK as a starting point. However, if you want your UI to work properly on a variety of screen sizes (or with a variety of window sizes) a grid based layout should be preferred, you get much more control over how the controls are re-arranged as the user resizes the form.
|
|
|
|
|
D&D is so... well winforms, I think asp.net also had the D&D/ absolute position option, no one ever used it AFAIK. I suspect you are going to run into a large number of issues as your UI gets more complex. I mean more than you will with xaml.
As stated, styling is going to be easier with xaml.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
I seem to recall hacking around with D&D for about an hour on my first WPF day - been typing XAML ever since. I suppose it is down to personal preference but at some point you are going to have to type some XAML so why not do it all the time?
|
|
|
|
|
Well my personal opinion will be to add controls by writing in the XAML rather than dragging from the toolbox. I have seen my Senior developer(who doesn't have much experience in WPF) adding controls in a Stackpanel by dragging into it!! Don't know how she did it, but then i corrected it by doing it in XAML.
Its better to use Grid.RowDefinitions and ColumnDefinitions as this is how Grid is meant to work, to add controls in Rows and Columns(here again the senior developers just dragged without using any Row or Column definitons!! ). Its much easier to handle the margins for your control, and styling the form will be much better and neater.
People with high attitude deserve the standing ovation of our highest finger!
My Technical Blog![ ^]
|
|
|
|
|
Don't do D&D ... create your XAML by hand, you'll get a better understanding of the syntax and you WILL experience less layout issues. Fact.
Toolbox is so last week ...
|
|
|
|
|
WPF TextBox - setting caret so hard! Following code doesn't change a thing!
(But works if I run the damn thing under Visual Studio debugger, stop working if I disable the breakpoints!)
<br />
<StackPanel Name="pnFreeTxt" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" Visibility="Collapsed"><br />
<TextBox Name="SomeTextValues" Width="150px" GotFocus="SomeTextValues_GotFocus" PreviewMouseUp="SomeTextValues_PreviewMouseUp"></TextBox><br />
</StackPanel><br />
<br />
private void SomeTextValues_GotFocus(object sender, RoutedEventArgs e)<br />
{<br />
base.OnGotFocus(e);<br />
SomeTextValues.CaretIndex = FreeTextValues.Text.Length + 2;<br />
return;<br />
}<br />
<br />
private void SomeTextValues_PreviewMouseUp(object sender, MouseButtonEventArgs e)<br />
{<br />
SomeTextValues.CaretIndex = FreeTextValues.Text.Length + 2;<br />
SomeTextValues.ReleaseMouseCapture();<br />
e.Handled = true;<br />
return;<br />
}<br />
This doesn't help because I want caret set before user mouse down (auto focus on the textbox).[^]
Some guys are having similar issue with SomeTextBox.SelectAll()[^]
dev
modified on Friday, March 4, 2011 4:34 AM
|
|
|
|
|
1) Anyone know if it's possible to use MS Office themes to change the look of a WPF or Silverlight app at runtime?
2) Along those lines, anyone know wat format the MS Office Themes are in?
Thanks
Everything makes sense in someone's mind
|
|
|
|
|
Kevin Marois wrote: 1) Anyone know if it's possible to use MS Office themes to change the look of a WPF or Silverlight app at runtime?
Not directly, no. But you can simulate them.
|
|
|
|
|
You'd have some legal issues using themes from office directly. Office isn't written in WPF anyways, so they wouldn't help you much. I'd suggest buying one of the many WPF UI libraries out there... they usually cost around $300 to $600 and all of them have all the Office theming / ribbon controls, etc. already done for you. You'd spend months / years duplicating that effort, so the $300 to $600 is well worth it .
|
|
|
|
|
This is the price i pay when i mixed silverlight and aspx pages in my application.
Good day guys, have some done this before ?
I want to redirect to a xaml page from a aspx page. i am using response.redirect.
Thanks
Vuyiswa Maseko,
Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code.
C#/VB.NET/ASP.NET/SQL7/2000/2005/2008
http://www.vuyiswamaseko.com
vuyiswa@its.co.za
http://www.itsabacus.co.za/itsabacus/
|
|
|
|
|