oops sorry my bad - i was trying it against the wrong sample. You're right -
layering it side-by-side as siblings solves the problem...

Not sure how i can lay it out in our application - we effectively do the
same thing except we use a contentpresenter to dynamically display content
within the drop-shadowed area.


On Fri, Nov 12, 2010 at 10:16 PM, Xerxes Battiwalla <[email protected]>wrote:

> That doesnt seem to help. As far as i can tell, this has more to do with
> the rendering pipeline than it does with layout. As i understand it, the
> render stage effectively composites the button ontop of the border,
> and (irrespective of its position in the visual tree) if the button is
> invalidated it *needs* to repaint the whole border.
>
> but why oh why?
>
>
> On Fri, Nov 12, 2010 at 8:04 PM, Shane Morris (Automatic Studio) <
> [email protected]> wrote:
>
>>  Did you try moving the button out of the border? Below the border and
>> button are *siblings* inside a grid.  Seems to solve the problem in
>> Perforator anyway.
>>
>>
>>
>>                                                                 <Grid
>> HorizontalAlignment="Right" Margin="0,65.947,21.843,86.053" Width="244.632">
>>
>>
>> <Border BorderBrush="#FFCA2C2C" BorderThickness="2" CornerRadius="40">
>>
>>
>> <Border.Effect>
>>
>>
>> <DropShadowEffect Direction="-42" BlurRadius="6" Opacity="0.635"/>
>>
>>
>> </Border.Effect>
>>
>>
>> </Border>
>>
>>
>> <Button Content="Button" HorizontalAlignment="Center"
>> VerticalAlignment="Center" Width="60" Height="60"/>
>>
>>                                                                 </Grid>
>>
>>
>>
>> Shanemo
>>
>>
>>
>>
>>
>> *From:* [email protected] [mailto:[email protected]]
>> *On Behalf Of *Xerxes Battiwalla
>> *Sent:* Friday, 12 November 2010 4:01 PM
>> *To:* ozWPF
>> *Subject:* Stopping DropShadowEffect from forcing large dirty-region
>> changes
>>
>>
>>
>> Hi all,
>>
>>
>>
>> Our application is visually composed in (effectively) a 2-column design.
>> Our designer wants to place drop-shadows around each column, but when we do
>> we notice the dirty-region for repaint grows to encompass the entire border
>> when any of its sub-elements need repainting. Below is an example
>> demonstrating the problem. Hook it up to Perforator, turn on Show Dirty
>> Rectangles and move the mouse over the button. You'll notice the entire
>> border is repainted when it only needs to paint the button. Why, and how do
>> i stop this? OR is there another way to apply a drop-shadow effect without
>> the repaint penalty? (in our real system, we're seeing 10-20% CPU usage just
>> because of this).
>>
>>
>>
>> <Window
>>
>>             xmlns="
>> http://schemas.microsoft.com/winfx/2006/xaml/presentation";
>>
>>             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
>>
>>             x:Class="WPFDropShadow.MainWindow"
>>
>>             x:Name="Window"
>>
>>             Title="MainWindow"
>>
>>             Width="640" Height="480">
>>
>>
>>
>>             <Grid x:Name="LayoutRoot">
>>
>>                         <Border BorderBrush="#FFCA2C2C"
>> BorderThickness="2" Margin="147,67,165,85" CornerRadius="40">
>>
>>                                     <Border.Effect>
>>
>>                                                 <DropShadowEffect
>> Direction="-42" BlurRadius="6" Opacity="0.635"/>
>>
>>                                     </Border.Effect>
>>
>>                                     <Button Content="Button"
>> Margin="126,114,109,113"/>
>>
>>                         </Border>
>>
>>             </Grid>
>>
>> </Window>
>>
>>
>>
>>
>>
>> Thanks,
>> Xerx
>>
>> _______________________________________________
>> ozwpf mailing list
>> [email protected]
>> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>>
>>
>
_______________________________________________
ozwpf mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf

Reply via email to