Windows Vista Forums

Customer Control Lessons Leaned So Far...

  1. #1


    john Guest

    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 SpecsSystem Spec

  2. #2


    Douglas Stockwell Guest

    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 SpecsSystem Spec

  3. #3


    john Guest

    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 SpecsSystem Spec

  4. #4


    Laurent Bugnion Guest

    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 SpecsSystem Spec

Customer Control Lessons Leaned So Far...

Similar Threads
Thread Forum
Get Schooled: 10 Life Lessons Learned from Gaming
Read more at: Maximum PC | Get Schooled: 10 Life Lessons Learned from Gaming
Gaming
How can I opt out of Windows Customer Experience?
Hello. After wading through my task scheduler, it appears that I am participating in the Windows Customer Experience Program. (I don't remember...
Vista installation & setup
Five lessons from Microsoft on cloud security
While Google, Amazon, and Salesforce.com have gotten the most attention as cloud service providers, Microsoft -- with its 300 products and services...
Vista News
Terminology lessons, please.
I hope I'm not abusing this forum by posting this question. I'd to know (a) what is it? (b) what is it's funcion(s) , of the following : 1.)...
Vista General
Vista RC1 & RC2 Lessons learned so far. (May help the newbies)
Here are just a few lessons learned and some ideas and advice for those who may be getting ready to play with Vista the first time. 1. System...
Vista General
Vista's Lessons for Microsoft
http://www.usnews.com/usnews/biztech/articles/070515/15vista.lessons.htm The hype is just hype... its a shame that after eXPerience (windows XP)...
Vista General
A customer's opinion
A customer called me to help her with a few things on her new computer from Dell that had Vista installed. I noticed that it ran faster than some...
Vista General