c# - Extending a Separator (Deriving from) -
i have implement custom separator
, few custom properties (the main 1 header
):
public class headeredseparator : separator { //more properties here... headerforeground , separatorheight. public static readonly dependencyproperty headerproperty = dependencyproperty.register("header", typeof(string), typeof(headeredseparator)); [bindable(true), category("common")] public string header { { return (string)getvalue(headerproperty); } set { setvalue(headerproperty, value); } } static headeredseparator() { defaultstylekeyproperty.overridemetadata(typeof(headeredseparator), new frameworkpropertymetadata(typeof(headeredseparator))); } }
and style
(inside themes\generic.xaml):
<style x:key="{x:static menuitem.separatorstylekey}" targettype="{x:type c:headeredseparator}"> <setter property="isenabled" value="false"/> <setter property="height" value="auto"/> <setter property="separatorheight" value="1"/> <setter property="foreground" value="#ffe0e3e6"/> <setter property="headerforeground" value="#ff202326"/> <setter property="fontsize" value="12"/> <setter property="verticalcontentalignment" value="center"/> <setter property="horizontalcontentalignment" value="stretch"/> <setter property="horizontalalignment" value="stretch"/> <setter property="template"> <setter.value> <controltemplate targettype="{x:type c:headeredseparator}"> <grid margin="0,4" horizontalalignment="stretch"> <grid.columndefinitions> <columndefinition width="auto"/> <columndefinition/> </grid.columndefinitions> <textblock grid.column="0" text="{templatebinding header}" fontsize="{templatebinding fontsize}" foreground="{templatebinding headerforeground}"/> <rectangle grid.column="1" height="{templatebinding separatorheight}" fill="{templatebinding foreground}" verticalalignment="{templatebinding verticalcontentalignment}" horizontalalignment="{templatebinding horizontalcontentalignment}" stretch="fill"/> </grid> </controltemplate> </setter.value> </setter> </style>
(edit) usage:
<c:headeredseparator header="itens"/>
this separator supposed display header while being used inside menu. that's why i'm using key
attribute, reason, isn't working (the default style being loaded). guys know why?
Comments
Post a Comment