wpf - Is it possible to reference control templates defined in microsoft's assemblies? -


i have scenario have provide own control template few wpf controls - i.e. gridviewheader. when take @ control template gridviewheader in blend, agregated several other controls, in cases styled control - i.e. splitter between columns. templates, resources hidden somewhere in system...dll (or somewhwere in themes dll's). so, question - there way reference predefined templates? far, i've ended having own copies of them in resources, don't approach.

here sample scenario: have gridviewcolumnheader:

        <style targettype="{x:type gridviewcolumnheader}" x:key="gridviewcolumnstyle">             <setter property="horizontalcontentalignment" value="stretch"/>             <setter property="verticalcontentalignment" value="stretch"/>             <setter property="background" value="{staticresource gridviewheaderbackgroundcolor}"/>             <setter property="borderbrush" value="{staticresource gridviewheaderforegroundcolor}"/>             <setter property="borderthickness" value="0"/>             <setter property="padding" value="2,0,2,0"/>             <setter property="foreground" value="{staticresource gridviewheaderforegroundcolor}"/>             <setter property="template">                 <setter.value>                     <controltemplate targettype="{x:type gridviewcolumnheader}">                         <grid snapstodevicepixels="true" tag="header" name="header">                             <contentpresenter name="headercontent" margin="0,0,0,1" verticalalignment="{templatebinding verticalcontentalignment}" horizontalalignment="{templatebinding horizontalcontentalignment}" recognizesaccesskey="true" snapstodevicepixels="{templatebinding snapstodevicepixels}" />                             <canvas>                                 <thumb x:name="part_headergripper" style="{staticresource gridviewcolumnheadergripper}"/>                             </canvas>                         </grid>                         <controltemplate.triggers>                             <trigger property="ismouseover" value="true">                             </trigger>                             <trigger property="ispressed" value="true">                                 <setter targetname="headercontent" property="margin" value="1,1,0,0"/>                             </trigger>                             <trigger property="height" value="auto">                                 <setter property="minheight" value="20"/>                             </trigger>                             <trigger property="isenabled" value="false">                                 <setter property="foreground" value="{dynamicresource {x:static systemcolors.graytextbrushkey}}"/>                             </trigger>                         </controltemplate.triggers>                     </controltemplate>                 </setter.value>             </setter>         </style> 

so far - nothing interesting, say, want add functionality straight in template - i'd leave cotnent presenter is, add controls next , i'd leave thumb defaults framework. i've found themes provided microsoft here:

the theme thumb looks that:

<style x:key="gridviewcolumnheadergripper"        targettype="{x:type thumb}">     <setter property="canvas.right"             value="-9"/>     <setter property="width"             value="18"/>     <setter property="height"             value="{binding path=actualheight,relativesource={relativesource templatedparent}}"/>     <setter property="padding"             value="0"/>     <setter property="background"             value="{staticresource gridviewcolumnheaderborderbackground}"/>     <setter property="template">         <setter.value>             <controltemplate targettype="{x:type thumb}">                 <border padding="{templatebinding padding}"                         background="transparent">                     <rectangle horizontalalignment="center"                                width="1"                                fill="{templatebinding background}"/>                 </border>             </controltemplate>         </setter.value>     </setter> </style> 

so far - have copy & paste style, while i'd prefer reference resources.

referencing internal resources 100% subject change isn't serviceable - better copy it.


Comments

Popular posts from this blog

c++ - How do I get a multi line tooltip in MFC -

asp.net - In javascript how to find the height and width -

c# - DataTable to EnumerableRowCollection -