Windows Vista Forums

How to draw a horizontal line without specifying X2??
  1. #1


    John Taylor Guest

    How to draw a horizontal line without specifying X2??

    I want to draw a horizontal line that fills up the entire available width of
    a grid cell. I don't want to explicitly specify the line's width (X2). How
    do I do this???

    <Line Grid.Row="1" Stroke="Gray" StrokeThickness="1" X1="0" X2="200" Y1="1"
    Y2="1" />



    in above sample, I want to remove the "200" so that the line sizes
    automatically when the grid is resized. thanks!


      My System SpecsSystem Spec

  2. #2


    Laurent Bugnion, MVP Guest

    Re: How to draw a horizontal line without specifying X2??

    Hi,

    John Taylor wrote:

    > I want to draw a horizontal line that fills up the entire available
    > width of a grid cell. I don't want to explicitly specify the line's
    > width (X2). How do I do this???
    >
    > <Line Grid.Row="1" Stroke="Gray" StrokeThickness="1" X1="0" X2="200"
    > Y1="1" Y2="1" />
    >
    > in above sample, I want to remove the "200" so that the line sizes
    > automatically when the grid is resized. thanks!
    X2 is a DependencyProperty, so you can easily bind to the desired value.
    For example:

    <Grid x:Name="MyGrid">

    <Grid.RowDefinitions>
    <RowDefinition Height="10"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Line Grid.Row="1"
    X1="0"
    X2="{Binding ElementName=MyGrid, Path=ActualWidth}"
    Stroke="Red"
    StrokeThickness="5"
    Y1="1"
    Y2="1"/>

    </Grid>

    Note: You must bind to ActualWidth, not to Width. ActualWidth is always
    accurate, while Width is what the user entered, so the value may be Auto
    or simply not set.

    HTH,
    Laurent
    --
    Laurent Bugnion [MVP ASP.NET]
    Software engineering, Blog: http://www.galasoft.ch
    PhotoAlbum: http://www.galasoft.ch/pictures
    Support children in Calcutta: http://www.calcutta-espoir.ch

      My System SpecsSystem Spec

  3. #3


    John Taylor Guest

    Re: How to draw a horizontal line without specifying X2??

    This doesn't seem to work when the grid is resized. Is there anything else I
    should be doing?


    "Laurent Bugnion, MVP" <galasoft-lb@xxxxxx> wrote in message
    news:#ett$jC6HHA.5844@xxxxxx

    > Hi,
    >
    > John Taylor wrote:

    >> I want to draw a horizontal line that fills up the entire available width
    >> of a grid cell. I don't want to explicitly specify the line's width (X2).
    >> How do I do this???
    >>
    >> <Line Grid.Row="1" Stroke="Gray" StrokeThickness="1" X1="0" X2="200"
    >> Y1="1" Y2="1" />
    >>
    >> in above sample, I want to remove the "200" so that the line sizes
    >> automatically when the grid is resized. thanks!
    >
    > X2 is a DependencyProperty, so you can easily bind to the desired value.
    > For example:
    >
    > <Grid x:Name="MyGrid">
    >
    > <Grid.RowDefinitions>
    > <RowDefinition Height="10"/>
    > <RowDefinition Height="*"/>
    > </Grid.RowDefinitions>
    >
    > <Line Grid.Row="1"
    > X1="0"
    > X2="{Binding ElementName=MyGrid, Path=ActualWidth}"
    > Stroke="Red"
    > StrokeThickness="5"
    > Y1="1"
    > Y2="1"/>
    >
    > </Grid>
    >
    > Note: You must bind to ActualWidth, not to Width. ActualWidth is always
    > accurate, while Width is what the user entered, so the value may be Auto
    > or simply not set.
    >
    > HTH,
    > Laurent
    > --
    > Laurent Bugnion [MVP ASP.NET]
    > Software engineering, Blog: http://www.galasoft.ch
    > PhotoAlbum: http://www.galasoft.ch/pictures
    > Support children in Calcutta: http://www.calcutta-espoir.ch

      My System SpecsSystem Spec

  4. #4


    Laurent Bugnion, MVP Guest

    Re: How to draw a horizontal line without specifying X2??

    Hi,

    John Taylor wrote:

    > This doesn't seem to work when the grid is resized. Is there anything
    > else I should be doing?
    It works fine here. Are you sure you copied my code? The whole example is:

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid x:Name="MyGrid">

    <Grid.RowDefinitions>
    <RowDefinition Height="10"/>
    <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Line Grid.Row="1"
    X1="0"
    X2="{Binding ElementName=MyGrid, Path=ActualWidth}"
    Stroke="Red"
    StrokeThickness="5"
    Y1="1"
    Y2="1"/>

    </Grid>
    </Window>

    If you copy this in KaXaml or in XamlPad, you'll see it works.

    Greetings,
    Laurent

    >
    >
    > "Laurent Bugnion, MVP" <galasoft-lb@xxxxxx> wrote in message
    > news:#ett$jC6HHA.5844@xxxxxx

    >> Hi,
    >>
    >> John Taylor wrote:

    >>> I want to draw a horizontal line that fills up the entire available
    >>> width of a grid cell. I don't want to explicitly specify the line's
    >>> width (X2). How do I do this???
    >>>
    >>> <Line Grid.Row="1" Stroke="Gray" StrokeThickness="1" X1="0" X2="200"
    >>> Y1="1" Y2="1" />
    >>>
    >>> in above sample, I want to remove the "200" so that the line sizes
    >>> automatically when the grid is resized. thanks!
    >>
    >> X2 is a DependencyProperty, so you can easily bind to the desired
    >> value. For example:
    >>
    >> <Grid x:Name="MyGrid">
    >>
    >> <Grid.RowDefinitions>
    >> <RowDefinition Height="10"/>
    >> <RowDefinition Height="*"/>
    >> </Grid.RowDefinitions>
    >>
    >> <Line Grid.Row="1"
    >> X1="0"
    >> X2="{Binding ElementName=MyGrid, Path=ActualWidth}"
    >> Stroke="Red"
    >> StrokeThickness="5"
    >> Y1="1"
    >> Y2="1"/>
    >>
    >> </Grid>
    >>
    >> Note: You must bind to ActualWidth, not to Width. ActualWidth is
    >> always accurate, while Width is what the user entered, so the value
    >> may be Auto or simply not set.
    >>
    >> HTH,
    >> Laurent
    >> --
    >> Laurent Bugnion [MVP ASP.NET]
    >> Software engineering, Blog: http://www.galasoft.ch
    >> PhotoAlbum: http://www.galasoft.ch/pictures
    >> Support children in Calcutta: http://www.calcutta-espoir.ch
    >
    --
    Laurent Bugnion [MVP ASP.NET]
    Software engineering, Blog: http://www.galasoft.ch
    PhotoAlbum: http://www.galasoft.ch/pictures
    Support children in Calcutta: http://www.calcutta-espoir.ch

      My System SpecsSystem Spec

  5. #5


    Jeff Pierson Guest

    Use of Stretch="Fill" to make a line fill the available space

    The following works for me.

    <Line
    Grid.Row="2"
    Stretch="Fill"
    Stroke="Black"
    X2="1" />



    John Taylor wrote:

    How to draw a horizontal line without specifying X2??
    25-Aug-07

    I want to draw a horizontal line that fills up the entire available width of
    a grid cell. I don't want to explicitly specify the line's width (X2). How
    do I do this???

    <Line Grid.Row="1" Stroke="Gray" StrokeThickness="1" X1="0" X2="200" Y1="1"
    Y2="1" />

    in above sample, I want to remove the "200" so that the line sizes
    automatically when the grid is resized. thanks!

    EggHeadCafe - Software Developer Portal of Choice
    Convert XML ADO recordset to Table with the DOM
    http://www.eggheadcafe.com/tutorials...-recordse.aspx

      My System SpecsSystem Spec

How to draw a horizontal line without specifying X2?? problems?

Similar Threads
Thread Thread Starter Forum Replies Last Post
Corel draw x13 paulyboy Software 7 07 Sep 2009
Draw Pad Issues cutepiku Windows Live 0 05 Aug 2009
Draw a LINE on a TABCONTROL??? Alan Mailer .NET General 2 12 Mar 2009
Draw a circle in WPF Tem Avalon 7 29 Oct 2007
How to draw a line without explicitly specifying its coordinates Pascal Bourque Avalon 3 04 Feb 2006