Custom Window Chrome in WPF

About a month ago I posted a teaser video that I would be doing a screencast on developing a fully functional custom window chrome for WPF. Well, it's here. I did miss my mark by 8 days though, I had originally wanted to complete it by the 1st. Anyways, here's the demo source code for the video.

Screencast Code:
Custom Window Chrome Demo_2013-03-09 21-35-24Z

186 Comments

  1. Pingback: geo

  2. Pingback: zofran tablet and amoxil tablet price

  3. Pingback: timolol vs betaxolol

  4. Pingback: stromectoluk.com

  5. Pingback: olimelt 15

  6. Pingback: cialis tadalafil oral jelly

  7. Pingback: zoloft dosage

  8. Pingback: buspirone generic name

  9. Pingback: tadalafil generic

  10. Pingback: clincitop gel cream

  11. Pingback: lilac french bulldogs

  12. Pingback: french bulldogs

  13. Pingback: fluffy french bulldog

  14. Pingback: prednisolone for dogs dosage

  15. Pingback: lilac french bulldogs

  16. Pingback: french bulldogs

  17. Pingback: cenforce 200 mg best price

  18. Pingback: lilac french bulldogs

  19. Pingback: fluffy french bulldog

  20. Pingback: merle french bulldog

  21. Pingback: nitrostat 0.6 mg

  22. Pingback: clomid 50mg for male

  23. Pingback: travatan vs travoprost

  24. Pingback: prednisone

  25. Pingback: Can i order clomid for sale

  26. Pingback: generic for revatio

  27. Pingback: 100 mg Levitra

  28. Pingback: online viagra

  29. Pingback: folding hand fans

  30. Pingback: frenchie chihuahua mix

  31. Pingback: floodle puppies for sale

  32. Pingback: floodle puppies for sale

  33. Pingback: frenchie boston terrier mix

  34. Pingback: floodle puppies for sale

  35. Pingback: vidalista.pics

  36. Pingback: otclevitra.com

  37. Pingback: otcalbuterol.net

  38. Pingback: fildena.homes

  39. Pingback: cheap generic viagra french kamagra

  40. Pingback: Tadalafil from india

  41. Pingback: marfa prada poster

  42. Pingback: chanel activewear

  43. Pingback: need money for porsche

  44. Pingback: french bulldog accessories

  45. Pingback: chanel dog bowl

  46. Pingback: crypto news

  47. Pingback: Impotence is not a normal part of aging and may respond well to what are viagra pills.

  48. Pingback: Kim Miyang Acupuncturist & Herbalist

  49. Pingback: cenforce 200mg 10 euro

  50. Pingback: lasix furosemide

  51. Pingback: best probiotic for english bulldog

  52. Pingback: probiotic dog treats

  53. Pingback: French Bulldog For Sale

  54. Pingback: French Bulldog For Sale

  55. Pingback: Frenchie Puppies

  56. Pingback: Frenchie Puppies

  57. Pingback: Frenchie Puppies

  58. Pingback: Frenchie Puppies

  59. Pingback: French Bulldog Puppies Near Me

  60. Pingback: French Bulldog For Sale

  61. Pingback: golf cart rentals tips

  62. Pingback: vigrakrs.com

  63. Pingback: advair diskus 250 50

  64. Pingback: fildena soft serve

  65. Pingback: cathopic.com/@vidalistablack

  66. Pingback: forum.hcpforum.com/vilitrauses

  67. Pingback: kamagra

  68. Pingback: ventolinha.wordpress.com

  69. Pingback: profcial.wordpress.com

  70. Pingback: fildena 50 mg

  71. Pingback: onglyza saxagliptin

  72. Pingback: amoxforyou.wordpress.com

  73. Pingback: zithrom.wordpress.com

  74. Pingback: viasuper.wordpress.com

  75. Pingback: neuronforyou.wordpress.com

  76. Pingback: golf cart rental isla mujeres

  77. Pingback: clima en atizapán de zaragoza

  78. Pingback: minnect expert

  79. Pingback: elizabeth kerr

  80. Pingback: levitinfo.wordpress.com

  81. Pingback: viagra pills over the counter

  82. Pingback: order cialis online

  83. Pingback: viagra buy over counter

  84. Pingback: kamagra jelly pack

  85. Pingback: order sildenafil for sale

  86. Pingback: imrotab 12

  87. Pingback: famvir 250 mg price

  88. Pingback: buy cenforce 150 with credit card

  89. Pingback: French Bulldog Rescue

  90. Pingback: French Bulldog Rescue

  91. Pingback: French Bulldog Rescue

  92. Pingback: rent a yacht in cancun

  93. Pingback: french pitbull

  94. Pingback: Instagram URL Shortener

  95. Pingback: Dog Registry

  96. Pingback: Dog Papers

  97. Pingback: Dog Registry

  98. Pingback: Dog Papers

  99. Pingback: Dog Registry

  100. Pingback: Dog Registry

  101. Pingback: Dog Papers

  102. Pingback: Dog Registry

  103. Pingback: Dog Papers

  104. Pingback: Dog Registry

  105. Pingback: Dog Registry

  106. Pingback: Dog Papers

  107. Pingback: Dog Registry

  108. Pingback: Dog Registry

  109. Pingback: Dog Registry

  110. Pingback: How To Obtain Dog Papers

  111. Pingback: Dog Breed Registries

  112. Pingback: Dog Breed Registries

  113. Pingback: How To Obtain Dog Papers

  114. Pingback: Dog Papers

  115. Pingback: How To Get My Dog Papers

  116. Pingback: clomidzsu.com

  117. Pingback: dapoxetineus.com

  118. Pingback: lipipzdfrty.com

  119. Pingback: otcalbuterol.com

  120. Pingback: vidalista 60 mg price

  121. Pingback: commander cialis en belgique

  122. Pingback: floodle

  123. Pingback: probiotics for french bulldogs

  124. Pingback: frenchie yorkie mix

  125. Pingback: wix seo

  126. Pingback: linh

  127. Pingback: culiacan clima

  128. Pingback: clima cancún

  129. Pingback: mexican candy near me

  130. Pingback: bjj jiu jitsu cypress texas

  131. Pingback: bjj jiu jitsu magnolia texas

  132. Pingback: french bulldog

  133. Pingback: brazilian jiu jitsu in houston

  134. Pingback: magnolia bjj

  135. Pingback: crypto news

  136. Pingback: sui

  137. Pingback: gaming

  138. Pingback: chanel bucket hat

  139. Pingback: french bulldog puppies for sale in texas

  140. Pingback: french bulldog texas

  141. Pingback: linh hoang

  142. Pingback: mexican candy store near me

  143. Pingback: mexican candy store near me

  144. Pingback: mexican candy store near me

  145. Pingback: mexican candy store near me

  146. Pingback: mexican candy store near me

  147. Pingback: mexican candy store near me

  148. Pingback: mexican candy store near me

  149. Pingback: mexican candy store near me

  150. Pingback: we buy dogs

  151. Pingback: dog probiotic

  152. Pingback: massachusetts boston terriers

  153. Pingback: 늑대닷컴

  154. Pingback: family ho

  155. Pingback: 늑대닷컴

  156. Pingback: french bulldogs to rescue

  157. Pingback: alexa collins

  158. Pingback: hairdresser in houston

  159. Pingback: french bulldog blue color

  160. Pingback: lilac frenchies

  161. Pingback: black frenchies

  162. Pingback: french bulldog puppies for sale $200

  163. Pingback: best french bulldog breeder

  164. Pingback: rent a yacht in cancun

  165. Pingback: isla mujeres condo

  166. Pingback: mexican candy store

  167. Pingback: download rust cheats

  168. Pingback: securecheats halo hacks

  169. Pingback: download hunt cheats

  170. Pingback: securecheats xdefiant hacks

  171. Pingback: aimbot vanguard

  172. Pingback: undetected battlebit hacks

  173. Pingback: micro french bulldog

  174. Pingback: french bulldog puppies near me

  175. Pingback: designer dogs

  176. Pingback: french bulldog rescue

  177. Pingback: clima en chimalhuacan

  178. Pingback: best probiotic for french bulldogs

  179. Pingback: esports domain

  180. Pingback: FB URL Shortener

  181. Thomas Heinze

    Hi David,

    nice tutorial. I’ve working your CustomWindow in my Application.
    Now I want to add a resizegrip for the template but if i add the resizegrip in the template

    I had a white resizegrip on the right site. How can i change that.

    Thanks Thomas

  182. Eugene

    Hello David

    Thanks for the great tutorial, I have been searching for hours with nothing close to what you created.

    There is one thing I am struggling with. If Window’s taskbar is set to autohide, then I cannot bring it back up by taking the mouse pointer to the bottom of the screen as with other programs. With normal WPF window it does work however, so I am guessing there is some windows parameter missing or something.

    Thanks again.

    http://windows.microsoft.com/en-za/windows/show-hide-taskbar#1TC=windows-7

  183. Sertan

    Not sure if this is still relevant but replying just in case it might help. Without an adorner layer, adorners will not render. Adorner layer can be on the control or parent / grandparents of the control in the visual tree.
    In this case if you wrap with , Adorners used inside the window will render as expected.

  184. Sushil

    Got it working! Thanks for your useful suggestion.
    One more issue with custom chrome I was not able to use adorner layer in order to resize controls on the fly.

  185. Sushil

    Hi David,

    Thanks for creating this video as it is quite useful. Could you please tell me how can create sub a sub window/User Control with this chrome. I tried to create a second window but it is throwing “Window must be the root of the tree. Cannot add Window as a child of ” error. Someone told me that I can use User Control to do that but again I getting default window chrome. Please Help.

    1. David Anderson (Post author)

      You have to do something like:

      public class CustomWindow : Window { }
      public class SubClassedWindow : CustomWindow { }

      <myXmlNs:SubClassedWindow> …

      There isn’t such a thing as Xaml inheritance unfortunately, and you can’t nest a Window in Xaml, it must be the outer most Xaml element in the Visual Tree.

Leave a Comment