Ultimately, what I want to achieve is a replication to some extend, of an Aero glass functionality of a WPF content control.
If I apply the BlurEffect
t
You can use the SetWindowCompositionAttribute on a Systems.Window, but you are then forced to set the WindowStyle to "None" and implement your own native Window funtionality and handles. Also inheriting from a custom control is quite complicated. Long story short, there's BlurryControls.
You can find it via NuGet by browsing for "BlurryControls" or check out the code yourself on GitHub. Eitherway, I hope this is helpful. It uses .NET 4.5.2 and only works for Windows10, since there is no solution to this problem on Windows8, and in earlier versions (Windows7 and Vista) you can achieve this by accessing DwmEnableBlurBehindWindow.
On GitHub you will also find a sample application called BlurryWindowInvoker.
no, it is not possible. The Effect is applied to the element and all its children but you can easily place the TextBlock outside the container, rather than inside it.
Normally you would use a grid like so:
<Grid>
<Border>
<Border.Effect>
<BlurEffect Radius="5" KernelType="Gaussian"/>
</Border.Effect/>
</Border>
<TextBlock .../>
</Grid>
In your example that will make no difference though. What, exactly, are you trying to blur?
You could apply this to a Grid.
<Grid.Background>
<VisualBrush>
<VisualBrush.Visual>
<Image Source="RESOURCES/BACKGROUNDS/BACKGROUND_01.jpg">
<Image.BitmapEffect>
<BlurBitmapEffect KernelType="Gaussian" Radius="20" />
</Image.BitmapEffect>
</Image>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Background>
What the background of the StackPanel? an ImageBrush? If so why cant you apply BlurEffect to that?
If that is not possible then try this..
1] Use an image and draw it completely over Grid
as I see you dont want a TileEffect
. Add BlurEffect
to this Image
. Make sure you fill image the uniformly.
2] Then add StackPanel
with transparent background as next child in the Grid
i.e. dont reverse the order of image and stackpanel.
3] Then add TextBlock
in StackPanel.
OR
If you insist on using a Brush
to be set as the backgrounnd of the panel then use VisualBrush
that draws a blurred image as background of the stackpanel, instead of ImageBrush
.
Let me know if any of these tips help.