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

136 Comments

  1. Pingback: best probiotic for english bulldog

  2. Pingback: probiotic dog treats

  3. Pingback: French Bulldog For Sale

  4. Pingback: French Bulldog For Sale

  5. Pingback: Frenchie Puppies

  6. Pingback: Frenchie Puppies

  7. Pingback: Frenchie Puppies

  8. Pingback: Frenchie Puppies

  9. Pingback: French Bulldog Puppies Near Me

  10. Pingback: French Bulldog For Sale

  11. Pingback: golf cart rentals tips

  12. Pingback: vigrakrs.com

  13. Pingback: advair diskus 250 50

  14. Pingback: fildena soft serve

  15. Pingback: cathopic.com/@vidalistablack

  16. Pingback: forum.hcpforum.com/vilitrauses

  17. Pingback: kamagra

  18. Pingback: ventolinha.wordpress.com

  19. Pingback: profcial.wordpress.com

  20. Pingback: fildena 50 mg

  21. Pingback: onglyza saxagliptin

  22. Pingback: amoxforyou.wordpress.com

  23. Pingback: zithrom.wordpress.com

  24. Pingback: viasuper.wordpress.com

  25. Pingback: neuronforyou.wordpress.com

  26. Pingback: golf cart rental isla mujeres

  27. Pingback: clima en atizapán de zaragoza

  28. Pingback: minnect expert

  29. Pingback: elizabeth kerr

  30. Pingback: levitinfo.wordpress.com

  31. Pingback: viagra pills over the counter

  32. Pingback: order cialis online

  33. Pingback: viagra buy over counter

  34. Pingback: kamagra jelly pack

  35. Pingback: order sildenafil for sale

  36. Pingback: imrotab 12

  37. Pingback: famvir 250 mg price

  38. Pingback: buy cenforce 150 with credit card

  39. Pingback: French Bulldog Rescue

  40. Pingback: French Bulldog Rescue

  41. Pingback: French Bulldog Rescue

  42. Pingback: rent a yacht in cancun

  43. Pingback: french pitbull

  44. Pingback: Instagram URL Shortener

  45. Pingback: Dog Registry

  46. Pingback: Dog Papers

  47. Pingback: Dog Registry

  48. Pingback: Dog Papers

  49. Pingback: Dog Registry

  50. Pingback: Dog Registry

  51. Pingback: Dog Papers

  52. Pingback: Dog Registry

  53. Pingback: Dog Papers

  54. Pingback: Dog Registry

  55. Pingback: Dog Registry

  56. Pingback: Dog Papers

  57. Pingback: Dog Registry

  58. Pingback: Dog Registry

  59. Pingback: Dog Registry

  60. Pingback: How To Obtain Dog Papers

  61. Pingback: Dog Breed Registries

  62. Pingback: Dog Breed Registries

  63. Pingback: How To Obtain Dog Papers

  64. Pingback: Dog Papers

  65. Pingback: How To Get My Dog Papers

  66. Pingback: clomidzsu.com

  67. Pingback: dapoxetineus.com

  68. Pingback: lipipzdfrty.com

  69. Pingback: otcalbuterol.com

  70. Pingback: vidalista 60 mg price

  71. Pingback: commander cialis en belgique

  72. Pingback: floodle

  73. Pingback: probiotics for french bulldogs

  74. Pingback: frenchie yorkie mix

  75. Pingback: wix seo

  76. Pingback: linh

  77. Pingback: culiacan clima

  78. Pingback: clima cancún

  79. Pingback: mexican candy near me

  80. Pingback: bjj jiu jitsu cypress texas

  81. Pingback: bjj jiu jitsu magnolia texas

  82. Pingback: french bulldog

  83. Pingback: brazilian jiu jitsu in houston

  84. Pingback: magnolia bjj

  85. Pingback: crypto news

  86. Pingback: sui

  87. Pingback: gaming

  88. Pingback: chanel bucket hat

  89. Pingback: french bulldog puppies for sale in texas

  90. Pingback: french bulldog texas

  91. Pingback: linh hoang

  92. Pingback: mexican candy store near me

  93. Pingback: mexican candy store near me

  94. Pingback: mexican candy store near me

  95. Pingback: mexican candy store near me

  96. Pingback: mexican candy store near me

  97. Pingback: mexican candy store near me

  98. Pingback: mexican candy store near me

  99. Pingback: mexican candy store near me

  100. Pingback: we buy dogs

  101. Pingback: dog probiotic

  102. Pingback: massachusetts boston terriers

  103. Pingback: 늑대닷컴

  104. Pingback: family ho

  105. Pingback: 늑대닷컴

  106. Pingback: french bulldogs to rescue

  107. Pingback: alexa collins

  108. Pingback: hairdresser in houston

  109. Pingback: french bulldog blue color

  110. Pingback: lilac frenchies

  111. Pingback: black frenchies

  112. Pingback: french bulldog puppies for sale $200

  113. Pingback: best french bulldog breeder

  114. Pingback: rent a yacht in cancun

  115. Pingback: isla mujeres condo

  116. Pingback: mexican candy store

  117. Pingback: download rust cheats

  118. Pingback: securecheats halo hacks

  119. Pingback: download hunt cheats

  120. Pingback: securecheats xdefiant hacks

  121. Pingback: aimbot vanguard

  122. Pingback: undetected battlebit hacks

  123. Pingback: micro french bulldog

  124. Pingback: french bulldog puppies near me

  125. Pingback: designer dogs

  126. Pingback: french bulldog rescue

  127. Pingback: clima en chimalhuacan

  128. Pingback: best probiotic for french bulldogs

  129. Pingback: esports domain

  130. Pingback: FB URL Shortener

  131. 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

  132. 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

  133. 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.

  134. 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.

  135. 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