Windows Vista Forums

Using a StaticResource in a template

  1. #1


    Keith Patrick Guest

    Using a StaticResource in a template

    I've got a style declared where, within the Template setter, I try to drop
    in a previously-declared resource declared like so:
    <Polyline x:Key="UpArrowGlyph" Points="0,0 0.5,0.3 1,0" Stroke="#FF5B6473"
    StrokeThickness="0.2" RenderTransformOrigin="0.5,0.5">

    <Polyline.RenderTransform>

    <RotateTransform Angle="180"/>

    </Polyline.RenderTransform>

    </Polyline>



    However, I can't seem to get the syntax for dropping it into a style. I use
    them in my UI itself, and it works just fine, but if I construct my template
    in this way:

    <Viewbox Stretch="Fill">

    <StaticResource ResourceKey="UpArrowGlyph" />

    </Viewbox>

    It says I can't use non-frameworkelements in my style. I know I'm missing
    some basic piece of syntax, but I've been stumped on this one for several
    days (including getting sidetracked on a 360 ).



      My System SpecsSystem Spec

  2. #2


    Nick Kramer [MSFT] Guest

    Re: Using a StaticResource in a template

    > It says I can't use non-frameworkelements in my style.

    I don't think it has anything to do with the resource reference, it's
    because Polyline is not a subclass of FrameworkElement. The root element in
    the template must be a framework element, if you don't have a useful
    framework element just use a Border with zero-sized border.

    -Nick Kramer [MSFT]
    http://blogs.msdn.com/nickkramer

    ---
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Use of included script samples are subject to the terms specified at
    http://www.microsoft.com/info/cpyright.htm


    "Keith Patrick" <richard_keith_patrick@nospam.hotmail.com> wrote in message
    news:uI1ziVfJGHA.3100@tk2msftngp13.phx.gbl...
    > I've got a style declared where, within the Template setter, I try to drop
    > in a previously-declared resource declared like so:
    > <Polyline x:Key="UpArrowGlyph" Points="0,0 0.5,0.3 1,0" Stroke="#FF5B6473"
    > StrokeThickness="0.2" RenderTransformOrigin="0.5,0.5">
    >
    > <Polyline.RenderTransform>
    >
    > <RotateTransform Angle="180"/>
    >
    > </Polyline.RenderTransform>
    >
    > </Polyline>
    >
    >
    >
    > However, I can't seem to get the syntax for dropping it into a style. I
    > use them in my UI itself, and it works just fine, but if I construct my
    > template in this way:
    >
    > <Viewbox Stretch="Fill">
    >
    > <StaticResource ResourceKey="UpArrowGlyph" />
    >
    > </Viewbox>
    >
    > It says I can't use non-frameworkelements in my style. I know I'm missing
    > some basic piece of syntax, but I've been stumped on this one for several
    > days (including getting sidetracked on a 360 ).
    >




      My System SpecsSystem Spec

  3. #3


    Nick Kramer [MSFT] Guest

    Re: Using a StaticResource in a template

    D'oh! It was pointed out to me that PolyLine is a Shape and thus a
    FrameworkElement.

    What's the complete xaml you're using?

    --
    -Nick Kramer [MSFT]
    http://blogs.msdn.com/nickkramer

    ---
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Use of included script samples are subject to the terms specified at
    http://www.microsoft.com/info/cpyright.htm


    "Nick Kramer [MSFT]" <nkramer@ms.spam> wrote in message
    news:eWC9M25JGHA.216@TK2MSFTNGP15.phx.gbl...
    >> It says I can't use non-frameworkelements in my style.

    >
    > I don't think it has anything to do with the resource reference, it's
    > because Polyline is not a subclass of FrameworkElement. The root element
    > in the template must be a framework element, if you don't have a useful
    > framework element just use a Border with zero-sized border.
    >
    > -Nick Kramer [MSFT]
    > http://blogs.msdn.com/nickkramer
    >
    > ---
    > This posting is provided "AS IS" with no warranties, and confers no
    > rights. Use of included script samples are subject to the terms specified
    > at http://www.microsoft.com/info/cpyright.htm
    >
    >
    > "Keith Patrick" <richard_keith_patrick@nospam.hotmail.com> wrote in
    > message news:uI1ziVfJGHA.3100@tk2msftngp13.phx.gbl...
    >> I've got a style declared where, within the Template setter, I try to
    >> drop in a previously-declared resource declared like so:
    >> <Polyline x:Key="UpArrowGlyph" Points="0,0 0.5,0.3 1,0"
    >> Stroke="#FF5B6473" StrokeThickness="0.2" RenderTransformOrigin="0.5,0.5">
    >>
    >> <Polyline.RenderTransform>
    >>
    >> <RotateTransform Angle="180"/>
    >>
    >> </Polyline.RenderTransform>
    >>
    >> </Polyline>
    >>
    >>
    >>
    >> However, I can't seem to get the syntax for dropping it into a style. I
    >> use them in my UI itself, and it works just fine, but if I construct my
    >> template in this way:
    >>
    >> <Viewbox Stretch="Fill">
    >>
    >> <StaticResource ResourceKey="UpArrowGlyph" />
    >>
    >> </Viewbox>
    >>
    >> It says I can't use non-frameworkelements in my style. I know I'm
    >> missing some basic piece of syntax, but I've been stumped on this one for
    >> several days (including getting sidetracked on a 360 ).
    >>

    >
    >




      My System SpecsSystem Spec

  4. #4


    Keith Patrick Guest

    Re: Using a StaticResource in a template

    This is the style:
    <Style x:Key="{x:Type ScrollBar}"
    TargetType="{x:Type ScrollBar}">
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="{x:Type ScrollBar}">
    <Grid Background="{TemplateBinding Background}">
    <RowDefinition MaxHeight="{DynamicResource {x:Static
    SystemParameters.VerticalScrollBarButtonHeightKey}}" />
    <RowDefinition Height="1E-05*" />
    <RowDefinition MaxHeight="{DynamicResource {x:Static
    SystemParameters.VerticalScrollBarButtonHeightKey}}" />
    <RepeatButton Command="ScrollBar.LineUpCommand"
    Height="{DynamicResource {x:Static
    SystemParameters.VerticalScrollBarButtonHeightKey}}"
    MinWidth="{DynamicResource {x:Static
    SystemParameters.VerticalScrollBarWidthKey}}">
    <Viewbox Stretch="Fill">
    <StaticResource ResourceKey="UpArrowGlyph"
    />
    </Viewbox>
    </RepeatButton>
    </Grid>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>

    And teh resource is here:
    <Polyline x:Key="UpArrowGlyph"
    Points="0,0 0.5,0.3 1,0"
    Stroke="#FF5B6473"
    StrokeThickness="0.2"
    RenderTransformOrigin="0.5,0.5">
    <Polyline.RenderTransform>
    <RotateTransform Angle="180"/>
    </Polyline.RenderTransform>
    </Polyline>





      My System SpecsSystem Spec


Using a StaticResource in a template
Similar Threads
Thread Forum
Making a template Live Mail
Solved template downloads Software
template with Netsh Vista networking & sharing
Vista adm template for AD? Vista account administration
StaticResource markup extension with Binding Avalon