Friday, 15 May 2015

xaml - How to get GroupBox default style WPF -



xaml - How to get GroupBox default style WPF -

i need wpf groupbox default style, googled in vain.

regards.

take @ http://msdn.microsoft.com/fr-fr/library/ms744748%28v=vs.110%29.aspx

first link me on google "groupbox style" btw

edit :

you can have look blend :

<style targettype="{x:type groupbox}"> <setter property="borderbrush" value="#d5dfe5"/> <setter property="borderthickness" value="1"/> <setter property="template"> <setter.value> <controltemplate targettype="{x:type groupbox}"> <grid snapstodevicepixels="true"> <grid.columndefinitions> <columndefinition width="6"/> <columndefinition width="auto"/> <columndefinition width="*"/> <columndefinition width="6"/> </grid.columndefinitions> <grid.rowdefinitions> <rowdefinition height="auto"/> <rowdefinition height="auto"/> <rowdefinition height="*"/> <rowdefinition height="6"/> </grid.rowdefinitions> <border borderbrush="transparent" borderthickness="{templatebinding borderthickness}" background="{templatebinding background}" grid.columnspan="4" grid.column="0" cornerradius="4" grid.row="1" grid.rowspan="3"/> <border x:name="header" grid.column="1" padding="3,1,3,0" grid.row="0" grid.rowspan="2"> <contentpresenter contentsource="header" recognizesaccesskey="true" snapstodevicepixels="{templatebinding snapstodevicepixels}"/> </border> <contentpresenter grid.columnspan="2" grid.column="1" margin="{templatebinding padding}" grid.row="2" snapstodevicepixels="{templatebinding snapstodevicepixels}"/> <border borderbrush="white" borderthickness="{templatebinding borderthickness}" grid.columnspan="4" cornerradius="4" grid.row="1" grid.rowspan="3"> <border.opacitymask> <multibinding converterparameter="7" converter="{staticresource bordergapmaskconverter}"> <binding elementname="header" path="actualwidth"/> <binding path="actualwidth" relativesource="{relativesource self}"/> <binding path="actualheight" relativesource="{relativesource self}"/> </multibinding> </border.opacitymask> <border borderbrush="{templatebinding borderbrush}" borderthickness="{templatebinding borderthickness}" cornerradius="3"> <border borderbrush="white" borderthickness="{templatebinding borderthickness}" cornerradius="2"/> </border> </border> </grid> </controltemplate> </setter.value> </setter> </style>

// centerbordergapmaskconverter code solve issue

internal partial class centerbordergapmaskconverter : imultivalueconverter { // methods public object convert(object[] values, type targettype, object parameter, cultureinfo culture) { type type = typeof(double); if (values == null || values.length != 3 || values[0] == null || values[1] == null || values[2] == null || !type.isassignablefrom(values[0].gettype()) || !type.isassignablefrom(values[1].gettype()) || !type.isassignablefrom(values[2].gettype())) { homecoming dependencyproperty.unsetvalue; } double pixels = (double)values[0]; double width = (double)values[1]; double height = (double)values[2]; if ((width == 0.0) || (height == 0.0)) { homecoming null; } grid visual = new grid(); visual.width = width; visual.height = height; columndefinition coldefinition1 = new columndefinition(); columndefinition coldefinition2 = new columndefinition(); columndefinition coldefinition3 = new columndefinition(); coldefinition1.width = new gridlength(1.0, gridunittype.star); coldefinition2.width = new gridlength(pixels); coldefinition3.width = new gridlength(1.0, gridunittype.star); visual.columndefinitions.add(coldefinition1); visual.columndefinitions.add(coldefinition2); visual.columndefinitions.add(coldefinition3); rowdefinition rowdefinition1 = new rowdefinition(); rowdefinition rowdefinition2 = new rowdefinition(); rowdefinition1.height = new gridlength(height / 2.0); rowdefinition2.height = new gridlength(1.0, gridunittype.star); visual.rowdefinitions.add(rowdefinition1); visual.rowdefinitions.add(rowdefinition2); rectangle rectangle1 = new rectangle(); rectangle rectangle2 = new rectangle(); rectangle rectangle3 = new rectangle(); rectangle1.fill = brushes.black; rectangle2.fill = brushes.black; rectangle3.fill = brushes.black; grid.setrowspan(rectangle1, 2); grid.setrow(rectangle1, 0); grid.setcolumn(rectangle1, 0); grid.setrow(rectangle2, 1); grid.setcolumn(rectangle2, 1); grid.setrowspan(rectangle3, 2); grid.setrow(rectangle3, 0); grid.setcolumn(rectangle3, 2); visual.children.add(rectangle1); visual.children.add(rectangle2); visual.children.add(rectangle3); homecoming new visualbrush(visual); } public object[] convertback(object value, type[] targettypes, object parameter, cultureinfo culture) { homecoming new object[] { binding.donothing }; } }

xaml wpf-controls

No comments:

Post a Comment