![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| |||||||
| |
| | #1 (permalink) |
| | Customer Control Lessons Leaned So Far... All: I have been developiing a simple (what I thought was simple) custom control (derived from UserControl). The basic functionality is that of a Jeopardy-style game square --- it should be a rounded rectangle that is filled with a gradient brush that sizes itself to the grid cell (parent) to which it is placed. What I have learned... * A UserControl can only have one child element. I originally used a Rectangle, but then could not add the question/answer text (no way to add a Label or TextBlock, etc.). Laurent Bugnion suggested using a container for the single allowed child and add children this way. I tried this and used a Canvas - it worked, somewhat... * I added 2 children to the Canvas -- a rectangle and a TextBlock. Originally, the rectangle was marked as Horizontal/VerticalAlignment="Stretch", with no specific Width and Height specified. This worked when the Rectangle was the direct child of the UserControl - but failed to display when the Rectangle was the child of the Canvas. Apparently, the Rectangle needs to have a specific Width and Height specified - which prevents Stretch from working... aaaarrrggghhhh Any insights and comments welcome. I hope the above helps others.. John - jpuopolo |
My System Specs![]() |
| | #2 (permalink) |
| | Re: Customer Control Lessons Leaned So Far... Hi John, Canvas is only used for absolute positioning, that is, where you specify Left, Top, Width and Height properties. Horizontal/VerticalAlignment are unused. I think you just need to explore the other subclasses of System.Windows.Controls.Panel, depending on how you want to lay out the elements, at least one of (or a combination of) Grid, StackPanel, WrapPanel, or DockPanel should suit your needs. - Doug "john" <puopolo@gmail.com> wrote in message news:1165160006.502441.322460@n67g2000cwd.googlegroups.com... > All: > > I have been developiing a simple (what I thought was simple) custom > control (derived from UserControl). The basic functionality is that of > a Jeopardy-style game square --- it should be a rounded rectangle that > is filled with a gradient brush that sizes itself to the grid cell > (parent) to which it is placed. > > What I have learned... > > * A UserControl can only have one child element. I originally used a > Rectangle, but then could not add the question/answer text (no way to > add a Label or TextBlock, etc.). Laurent Bugnion suggested using a > container for the single allowed child and add children this way. I > tried this and used a Canvas - it worked, somewhat... > > * I added 2 children to the Canvas -- a rectangle and a TextBlock. > Originally, the rectangle was marked as > Horizontal/VerticalAlignment="Stretch", with no specific Width and > Height specified. This worked when the Rectangle was the direct child > of the UserControl - but failed to display when the Rectangle was the > child of the Canvas. Apparently, the Rectangle needs to have a specific > Width and Height specified - which prevents Stretch from working... > aaaarrrggghhhh > > Any insights and comments welcome. I hope the above helps others.. > > John - jpuopolo > |
My System Specs![]() |
| | #3 (permalink) |
| | Re: Customer Control Lessons Leaned So Far... Doug: Thanks for the advice -- a StackPanel seems to do the trick... My only challenge now is to figure out if it is possible to round the corners of the StackPanel -- will play around with various configurations and post the results. Best, John (jpuopolo) Douglas Stockwell wrote: > Hi John, > > Canvas is only used for absolute positioning, that is, where you specify > Left, Top, Width and Height properties. Horizontal/VerticalAlignment are > unused. > > I think you just need to explore the other subclasses of > System.Windows.Controls.Panel, depending on how you want to lay out the > elements, at least one of (or a combination of) Grid, StackPanel, WrapPanel, > or DockPanel should suit your needs. > > - Doug > > > > > "john" <puopolo@gmail.com> wrote in message > news:1165160006.502441.322460@n67g2000cwd.googlegroups.com... > > All: > > > > I have been developiing a simple (what I thought was simple) custom > > control (derived from UserControl). The basic functionality is that of > > a Jeopardy-style game square --- it should be a rounded rectangle that > > is filled with a gradient brush that sizes itself to the grid cell > > (parent) to which it is placed. > > > > What I have learned... > > > > * A UserControl can only have one child element. I originally used a > > Rectangle, but then could not add the question/answer text (no way to > > add a Label or TextBlock, etc.). Laurent Bugnion suggested using a > > container for the single allowed child and add children this way. I > > tried this and used a Canvas - it worked, somewhat... > > > > * I added 2 children to the Canvas -- a rectangle and a TextBlock. > > Originally, the rectangle was marked as > > Horizontal/VerticalAlignment="Stretch", with no specific Width and > > Height specified. This worked when the Rectangle was the direct child > > of the UserControl - but failed to display when the Rectangle was the > > child of the Canvas. Apparently, the Rectangle needs to have a specific > > Width and Height specified - which prevents Stretch from working... > > aaaarrrggghhhh > > > > Any insights and comments welcome. I hope the above helps others.. > > > > John - jpuopolo > > |
My System Specs![]() |
| | #4 (permalink) |
| | Re: Customer Control Lessons Leaned So Far... Hi, john wrote: > Doug: > > Thanks for the advice -- a StackPanel seems to do the trick... My only > challenge now is to figure out if it is possible to round the corners > of the StackPanel -- will play around with various configurations and > post the results. > > Best, > John (jpuopolo) Sure, use a Border: <StackPanel> <Border CornerRadius="10" BorderBrush="Red" BorderThickness="5"> <TextBlock Text="Hello" /> </Border> </StackPanel> HTH, Laurent -- Laurent Bugnion, GalaSoft Software engineering: http://www.galasoft-LB.ch PhotoAlbum: http://www.galasoft-LB.ch/pictures Support children in Calcutta: http://www.calcutta-espoir.ch |
My System Specs![]() |
| Thread Tools | |
| |
Similar Threads | ||||
| Thread | Forum | |||
| Five lessons from Microsoft on cloud security | Vista News | |||
| Terminology lessons, please. | Vista General | |||
| Default Customer Information | Vista General | |||
| Vista RC1 & RC2 Lessons learned so far. (May help the newbies) | Vista General | |||
| Vista's Lessons for Microsoft | Vista General | |||