|
I'm also attempting to high light text from regular expression matches using a wpf richtextbox. There seems to be 2 characters added to the start of the text in the richtextbox that is throwing off the match.index. However adding 2 to the index doesn't help in all cases. I'll post if I come up with a solution. Here is what I currently have.
private void applyRegex_Click(object sender, RoutedEventArgs e)
{
TextRange tr = new TextRange(this.testBox.Document.ContentStart, this.testBox.Document.ContentEnd);
this.testResults.Text += (tr.Text + "\n");
MatchCollection matches = CheckForRegexPatternMatches(findElementTagsRegex, tr);
if (matches.Count > 0)
{
foreach (Match match in matches)
{
if (match.Success)
{
this.testResults.Text += "SUCCESS\n";
this.testResults.Text += "Value:" + match.Value + "\n";
this.testResults.Text += "Offset: " + match.Index.ToString() + "\n";
this.testResults.Text += "Length:" + match.Length.ToString() + "\n";
this.testResults.Text += "Offset + Length: " + (match.Index + match.Length).ToString() + "\n";
TextRange matchRange = null;
//if (match.Index == 0)
//{
// matchRange = new TextRange(tr.Start.GetPositionAtOffset(match.Index), tr.Start.GetPositionAtOffset(match.Index + match.Length));
//}
//else
//{
// matchRange = new TextRange(tr.Start.GetPositionAtOffset(match.Index + 2), tr.Start.GetPositionAtOffset(match.Index + 2 + match.Length));
//}
matchRange =
new TextRange(this.testBox.Document.ContentStart.GetPositionAtOffset(match.Index),
this.testBox.Document.ContentStart.GetPositionAtOffset(match.Index + match.Length));
matchRange.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Colors.Red));
}
}
}
this.testBox.CaretPosition = tr.End;
}
|
|
|
|
|
Is there a way to generate a Deep Zoom image dynamically on demand, from a bunch of images contained on a web server, in a Silverlight application?
Say I have a list of 400 URLs to images that I get from a database, which vary based on user input, and I want to create a Deep Zoom image by stitching all those other images together in say a 20x20 grid (400 total). Is it possible to do this in Deep Zoom, or will I need to write my own implementation.
From what I've read of Deep Zoom this isn't possible, it's only good for displaying an image that was manually created (via Deep Zoom Composer) ahead of time, rather than on demand. But I obviously want to double check this before I go off and create my own 2D grid of elements, implement my own zoom via RenderTransform etc.
|
|
|
|
|
|
You can serve up your own tiles like DeepEarth does...the
tiles can also be created dynamically.
If you want to create a DeepZoom file like the composer does, the format
is documented:
Deep Zoom File Format[^]
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi,
Does anybody know if it is possible to add dynamically new lines or columns to a grid at runtime ?
Thanks,
Fred
|
|
|
|
|
You have to use code (c#) not XAML to do this.
Something along the lines of:
myGrid.ColumnDefinitions.Add(new ColumnDefintion);
|
|
|
|
|
Thanks. But how do you do to access to the Grid.Row field in C# ?
RowDefinition ligne_def = new RowDefinition();
ligne_def.Height = new GridLength(50);
Grille.RowDefinitions.Add(ligne_def);
Grille.RowDefinitions.Add(ligne_def);
Button bouton_new = new Button();
bouton_new.Content = "nouveau bouton";
// And how to access to the fields Grid.Row="" and Grid.Column="" ?
Grille.Children.Add(bouton_new);
For example :
|
|
|
|
|
WolveFred2 wrote: how do you do to access to the Grid.Row field in C# ?
Grid.SetRow(bouton_new, rowvalue);
Mark Salsbery
Microsoft MVP - Visual C++
modified on Thursday, January 29, 2009 1:52 PM
|
|
|
|
|
There is no SetRow() method on my Grid object.
<grid x:name="Grille" background="White" xmlns:x="#unknown">
I'm using Silverlight 2.0, without other plugins.
There is a SetValue() method (SetValue(DependencyProperty dp, object value)). It deals about System.Windows.DependencyObject. Would it be useful for my problem ?
|
|
|
|
|
Oops....sorry
Grid.SetRow(bouton_new, rowvalue);
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks
1) But if there is more than one Grid on the application, how to set which Grid ?
2) Second question, is it possible to insert a row ?
3) Is it possible to merge cells, like in HTML Tables ?
|
|
|
|
|
WolveFred2 wrote: 1) But if there is more than one Grid on the application, how to set which Grid ?
Which grid the property applies to is based on the element you pass to
SetRow() - the element's "parent" grid.
WolveFred2 wrote: 2) Second question, is it possible to insert a row ?
It should be the same as inserting a column as Colin showed in his reply.
WolveFred2 wrote: 3) Is it possible to merge cells, like in HTML Tables ?
I don't know what you mean since I don't know HTML
An element can span multiple rows and/or columns of a grid.
You'd use the SetRowSpan()/SetColumnSpan() methods to adjust that from code
(the default is 1).
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you a lot for your help, it's really more clear than before.
There is just again a misunderstood point :
>> Is it possible to insert a row ?
> It should be the same as inserting a column as Colin showed in his reply.
> myGrid.ColumnDefinitions.Add(new ColumnDefintion);
myGrid.ColumnDefinitions.Insert(1, col_def);
That is inserting a column definition amongs others, but do not move the following columns. It seems that columns are statically positionned, as there have a property like Grid.Column="2".
So is it really possible to insert columns and rows ?
I wish I am wrong !
modified on Monday, February 2, 2009 10:56 AM
|
|
|
|
|
WolveFred2 wrote: It seems that columns are statically positionned, as there have a property like Grid.Column="2".
It's up to you to place the row/column definitions where you want them.
If you insert a column/row dynamically then you may need to adjust the properties of the
child elements so they shift to the new column/row positions.
This can all be done programatically.
What are you trying to do that's not working?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Okay, I agree I could do it myself. I was just surprised it wasn't already in place.
But I found a component that does it :
http://www.vectorlight.net/controls/table.aspx
It's an extension to the Grid component.
It's nearly usable except a little bug.
|
|
|
|
|
How can i make a control of AUTO FIT(FIT TO SCREEN) in WPF just like we have in Microsoft Visual
Studio 2008,when we design a WPF page in visual studio.
See when we open a XAML page in design view in Visual Studio 2008,we get slider for zoom in and zoom out and also a FIT TO SCREEN button in it.I want to design this FIT TO SCREEN in my application also,but i'm not able to get required parameters.And i'm designing the application in WPF with C# as back end.So what should be the code for that.
modified on Wednesday, January 28, 2009 8:34 PM
|
|
|
|
|
Can you provide a little more detail in your question. I am not sure what you are asking.
|
|
|
|
|
i think you can use anchor.
|
|
|
|
|
Could you elaborate on how Anchor can be used.
|
|
|
|
|
hi,
I want to deploy me wpf application done in C#. for this i have used clickonce, my application uses 'n' number of dlls which i have added to the project and then i get them on my client machine once say install.. my problem is that the application also has folder structure in which some xml file resides, i am not able to add this folder in my setup.. can any one suggest me a way achieve this!!
Thanks in Advance
Samir
|
|
|
|
|
Hi
I am VERY new to Silverlight and I am currently developing my first Silverlight Application. I have a bunch of mp3s located in my ASP.Net web app at "~/music/". And I have XAML as:-
<MediaElement x:Name="meAudioPlayer" AutoPlay="False" Source="music/test.mp3"></MediaElement>
But the mp3 doesn't play. If I copy the mp3 to "~/ClientBin/music/test.mp3" it works! But I can't copy ALL mp3s to the ClientBin folder. My web app has 1000s of mp3s located in the "~/music/" folder instead. The MSDN documentaton says that I can use Javascript APIs to set the source relative to the calling HTML page. But it doesn't have any example code. Could someone please show me how to do this?
Thanks!
|
|
|
|
|
I think it's because of wrong path... you need to go like ../music/test.mp3. or try to get full path from server-side playlist..
|
|
|
|
|
Now that you have been using WPF for a while, look back and tell me what your 'ah-ha' moment was...
Usually we have one defining point where all the pistons start firing and all the lights come on that opens up a whole new world for us. What was yours with regards to this technology?
|
|
|
|
|
Well - this[^] article describes mine. However, talking to Josh, Sacha, Dr WPF and Karl's been good for lots and lots of "oh wow" moments.
|
|
|
|
|
Not sure ALL the pistons are firing yet!
I liked this article on how a humble listbox can be completely changed in appearance.
http://bea.stollnitz.com/blog/?p=40[^]
Then going back a few weeks later and understanding (most of) the code this time.
Also as Pete said lots of good WPF authors here on CP.
Same thing, might not quite understand them, but let them sink in and they make more sense on rereading.
Another thing was understanding that XAML is not some mysterious language but you can do things like just make an arraylist with integers and bind it to a listbox, very easily when you know how.
The Pro WPF book has a nice chapter on this at the start. (You might be able to find this on google books, if you don't have a copy)
<window.resources>
<sys2:arraylist x:key="myArrayList" xmlns:x="#unknown" xmlns:sys2="#unknown">
<sys:int32 xmlns:sys="#unknown">1
<sys:int32>2
<sys:int32>3
</sys:int32></sys:int32></sys:int32></sys2:arraylist>
</window.resources>
<listbox itemssource="{StaticResource myArrayList" />
Then once you learn all that WPF stuff, you goto Silverlight and find out half of the good stuff is missing. *sob*
|
|
|
|