The margins provide you the buffer around the actualheight/actualwidth so yeah it should work.
Regards, Scott Barnes http://www.riagenic.com On Thu, Sep 16, 2010 at 10:32 AM, Colin Savage <[email protected]> wrote: > Is that going to work if I want the text content to dictate the height of the > textblock? I would need to know the actualheight to be able to set the bottom > thickness. > > Regards, > Colin Savage > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Scott Barnes > Sent: Thursday, 16 September 2010 10:14 AM > To: ozSilverlight > Subject: Re: Textblock SizeChanged > > Not really, you can achieve the same effects almost at times with > margin properties (thickness) vs left/top positioning.. its possible.. > > > Regards, > > Scott Barnes > > http://www.riagenic.com > > > > On Thu, Sep 16, 2010 at 9:36 AM, Colin Savage <[email protected]> > wrote: >> I think I'm stuck with canvas due to the arbitrary positioning, thanks for >> the all info. >> >> Regards, >> Colin Savage >> >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of Peter Blois >> Sent: Thursday, 16 September 2010 3:44 AM >> To: ozSilverlight >> Subject: RE: Textblock SizeChanged >> >> Canvas is actually a bit special and 'shortcuts' some of the layout routines >> that happen with every other panel. It's confusing and I've opened bugs on >> this in the past (caused us quite a bit of grief when we were implementing >> custom shapes in Blend), but the code is the way it is to maintain a very >> high level of performance for this specific layout control. >> >> Alternatively Grid rather than Canvas should work for you. If you really are >> doing a fully custom positioning and sizing that you may want that raw >> performance that comes from Canvas, for many cases I don't see a need to go >> this far though. >> >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of Scott Barnes >> Sent: Wednesday, September 15, 2010 1:35 AM >> To: ozSilverlight >> Subject: Re: Textblock SizeChanged >> >> Well u could change the size of he font and then invalidate the textblock >> which should trigger sizechanged event but it's a lil ghetto ;) >> >> -- >> Sent from my mini iPad nano >> (excuse my spilling and grammar as I have giant man like fingers and this >> device as small keys) >> >> On 15/09/2010, at 5:08 PM, Colin Savage <[email protected]> wrote: >> >>> The app is a WYSIWYG layout for arranging textblocks and barcodes and >>> things to print on a label, so I want to avoid adding content that is not >>> going to be printed to the xaml. Since the changing of the font size is >>> initiated by the user, I can access the ActualHeight after that and update >>> the rest of the UI manually. >>> >>> It seems that the event only fires if it has in some way changed the layout >>> of the container, but that is contrary to what the doco says. >>> >>> http://msdn.microsoft.com/en-us/library/system.windows.frameworkelemen >>> t.sizechanged(VS.95).aspx "SizeChanged is raised whenever the size >>> (either ActualHeight or ActualWidth) has changed on the object, and is >>> raised after the Measure and Arrange passes are complete (for more >>> information about these concepts, see Silverlight Layout System). If the >>> position of the object within a parent container changes, but not the size, >>> SizeChanged is not raised. " >>> >>> In this case the ActualHeight has changed, but it doesn't fire. I'll find a >>> workaround for it, I was just wondering if anyone knew the reason. >>> >>> Regards, >>> Colin Savage >>> >>> -----Original Message----- >>> From: [email protected] >>> [mailto:[email protected]] On Behalf Of Scott >>> Barnes >>> Sent: Wednesday, 15 September 2010 4:10 PM >>> To: ozSilverlight >>> Subject: Re: Textblock SizeChanged >>> >>> Steve's correct, Canvas doesn't really care how wide/high its children >>> are in regards to itself. Encapsulating the TextBlock inside a border >>> and using that as your Source of Truth should get you the results you >>> desire, but yeah you have a ghetto border now :) >>> >>> Not sure why FontSize doesn't trigger SizeChanged though? in theory >>> the ActualWidth/ActualHeight should still trigger this event but given >>> FontSize may act differently to other FrameworkElements given it uses >>> glyphs etc. >>> >>> >>> >>> Regards, >>> >>> Scott Barnes >>> >>> http://www.riagenic.com >>> >>> >>> >>> On Wed, Sep 15, 2010 at 3:46 PM, Stephen Price <[email protected]> >>> wrote: >>>> Without trying anything in code, I'd be guessing that putting the >>>> textblock onto/into the canvas makes it behave differently than when >>>> its in the border. I've seen quite a lot of sizing things behave >>>> differently depending upon the parent container. >>>> >>>> Have you tried it in a grid instead of a canvas? It might work >>>> (guessing, have not tried it out) >>>> >>>> On Wed, Sep 15, 2010 at 11:23 AM, Colin Savage <[email protected]> >>>> wrote: >>>>> Before this list turns entirely into an ausdotnet trollfest, how >>>>> about a Silverlight question? >>>>> >>>>> >>>>> >>>>> Does anyone know why a textblock is not firing SizeChanged event >>>>> when the fontsize changes? >>>>> >>>>> >>>>> >>>>> Example: >>>>> >>>>> <Grid x:Name="LayoutRoot" Background="White"> >>>>> >>>>> <StackPanel> >>>>> >>>>> <Button Content="Resize" >>>>> >>>>> Name="button1" >>>>> >>>>> Click="button1_Click" /> >>>>> >>>>> <TextBlock Name="result" >>>>> >>>>> Text="Size goes here"/> >>>>> >>>>> <TextBlock Name="actual" >>>>> >>>>> Text="Actual goes here" /> >>>>> >>>>> </StackPanel> >>>>> >>>>> <Canvas Height="200" >>>>> >>>>> HorizontalAlignment="Left" >>>>> >>>>> Margin="57,92,0,0" >>>>> >>>>> Name="canvas1" >>>>> >>>>> VerticalAlignment="Top" >>>>> >>>>> Width="311"> >>>>> >>>>> <!--<Border Canvas.Top="10" >>>>> >>>>> Canvas.Left="10" >>>>> >>>>> BorderBrush="Green" BorderThickness="1">--> >>>>> >>>>> <TextBlock Canvas.Top="10" >>>>> >>>>> Canvas.Left="10" >>>>> >>>>> Name="textblock1" >>>>> >>>>> Width="180" >>>>> >>>>> Text="Some Text" /> >>>>> >>>>> <!--</Border>--> >>>>> >>>>> </Canvas> >>>>> >>>>> </Grid> >>>>> >>>>> >>>>> >>>>> public partial class MainPage : UserControl >>>>> >>>>> { >>>>> >>>>> public MainPage() >>>>> >>>>> { >>>>> >>>>> InitializeComponent(); >>>>> >>>>> >>>>> >>>>> textblock1.SizeChanged += textblock1_SizeChanged; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> void textblock1_SizeChanged(object sender, >>>>> SizeChangedEventArgs e) >>>>> >>>>> { >>>>> >>>>> result.Text = e.NewSize.ToString(); >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> private void button1_Click(object sender, RoutedEventArgs e) >>>>> >>>>> { >>>>> >>>>> textblock1.FontSize += 1; >>>>> >>>>> >>>>> >>>>> actual.Text = textblock1.ActualHeight.ToString(); >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Note that if I increase the fontsize, the ActualHeight changes, but >>>>> the SizeChanged event doesn't. Uncomment the border around the >>>>> textblock and it does start firing. >>>>> >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Colin Savage >>>>> >>>>> _______________________________________________ >>>>> ozsilverlight mailing list >>>>> [email protected] >>>>> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >>>>> >>>>> >>>> _______________________________________________ >>>> ozsilverlight mailing list >>>> [email protected] >>>> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >>>> >>> _______________________________________________ >>> ozsilverlight mailing list >>> [email protected] >>> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >>> >>> >>> _______________________________________________ >>> ozsilverlight mailing list >>> [email protected] >>> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >> _______________________________________________ >> ozsilverlight mailing list >> [email protected] >> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >> >> _______________________________________________ >> ozsilverlight mailing list >> [email protected] >> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >> >> _______________________________________________ >> ozsilverlight mailing list >> [email protected] >> http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight >> > _______________________________________________ > ozsilverlight mailing list > [email protected] > http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight > > > _______________________________________________ > ozsilverlight mailing list > [email protected] > http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight > _______________________________________________ ozsilverlight mailing list [email protected] http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight
