Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Improve WPF performance with RenderOptions

0.00/5 (No votes)
31 Mar 2014 1  
Improve WPF performance with RenderOptions and TextOptions

Introduction

Too many articles have been presented on how to improve WPF performance with several global methods.

Here, we introduce another basic ways of improving WPF performance:

  • RenderOptions: Provides options for controlling the rendering behavior of objects.

Using the Code

For more details, please go to read MSDN (RenderOptions class). Here just for telling you with these, your application's performance should be improved.

Here is an example. You could see the difference between the two:

In the code block, you can see that certain settings could be inherited by childs element in XAML element-tree:

         <StackPanel Grid.Column="0" Margin="5" 
                    TextOptions.TextRenderingMode="Grayscale"
                    RenderOptions.ClearTypeHint="Enabled"
                    RenderOptions.BitmapScalingMode="NearestNeighbor"
                    RenderOptions.EdgeMode="Aliased">
            <TextBlock Text="With RenderOptions and TextOptions" HorizontalAlignment="Center"
                       TextOptions.TextHintingMode="Fixed" TextWrapping="Wrap" Width="300" 
                       TextAlignment="Center"/>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                <Image Source="_AUT.png" Width="30" RenderOptions.ClearTypeHint="Enabled"
                   RenderOptions.BitmapScalingMode="NearestNeighbor"/>
                <Image Source="_CHE.png" Width="30" RenderOptions.ClearTypeHint="Enabled"
                   RenderOptions.BitmapScalingMode="NearestNeighbor"/>
                <Image Source="_CHN.png" Width="30" RenderOptions.ClearTypeHint="Enabled"
                   RenderOptions.BitmapScalingMode="NearestNeighbor"/>
                <Image Source="_DEU.png" Width="30" RenderOptions.ClearTypeHint="Enabled" 
                    RenderOptions.EdgeMode="Aliased"
                   RenderOptions.BitmapScalingMode="NearestNeighbor"/>
                <Image Source="_CHL.png" Width="30" RenderOptions.ClearTypeHint="Enabled" 
                    RenderOptions.EdgeMode="Aliased"
                   RenderOptions.BitmapScalingMode="NearestNeighbor"/>
                <Image Source="_BEL.png" Width="30" RenderOptions.ClearTypeHint="Enabled" 
                    RenderOptions.EdgeMode="Aliased"
                   RenderOptions.BitmapScalingMode="NearestNeighbor"/>
            </StackPanel>
            <Grid Margin="0,0">
                <Canvas Height="60" Width="60" VerticalAlignment="Center">
                    <Polygon Points="2,59 30,2 59,39" Fill="Red">
                    </Polygon>
                </Canvas>
            </Grid>
        </StackPanel>

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here