Léigh i mBéarla

Comhroinn trí


DpiPrescaleThemedImageConverter Class

Definition

Caution

Use Microsoft.VisualStudio.Imaging.CrispImage instead.

Converts an ImageSource into an Image element. If the input image ia a BitmapSource, the transformed BitmapSource has its halo color mapped to the given background color and is conditionally rendered as disabled. The resultant image is then pre-scaled on High DPI to the largest zoom multiple of 100% smaller than the DPI zoom. This converter chains the behavior of ThemedImageConverter and DpiPrescaleImageSourceConverter.

C++/WinRT
[Windows::Foundation::Metadata::WebHostHidden]
class DpiPrescaleThemedImageConverter : Microsoft::VisualStudio::PlatformUI::MultiValueConverter<System::Windows::Media::ImageSource, System::Windows::Media::Color, bool, System::Windows::Controls::Image const &>
Inheritance
Derived
Attributes

Remarks

A common usage pattern can look like this:

<imaging:DpiPrescaleThemedImageConverter x:Key="DpiPrescaleThemedImageConverter" />  
<ControlTemplate x:Key="MyMenuItemTemplate" TargetType="{x:Type MenuItem}">  
<ContentPresenter x:Name="Icon" Width="16" Height="16" ContentSource="Icon" />  
</ControlTemplate>     
<Style x:Key="MyMenuItemStyleKey" TargetType="{x:Type MenuItem}">  
    <Setter Property="Template" Value="{StaticResource MyMenuItemTemplate}" />  
    <Setter Property="Icon">  
        <Setter.Value>  
            <MultiBinding Converter="{StaticResource DpiPrescaleThemedImageConverter}">  
                <Binding Path="Image" />  
                <Binding Path="(imaging:ImageThemingUtilities.ImageBackgroundColor)" RelativeSource="{RelativeSource Self}" />  
                <Binding Source="{x:Static utilities:Boxes.BooleanTrue}" />  
            </MultiBinding>  
        </Setter.Value>  
    </Setter>  
</Style>  

Where the image dimensions aren't known at compile time, instead of specifying exact Width/Height properties, a layout transform can be specified on the FrameworkElement like this:

<ContentPresenter.LayoutTransform>  
<ScaleTransform ScaleX="{x:Static util:DpiHelper.Default.PreScaledImageLayoutTransformScaleX}" ScaleY="{x:Static util:DpiHelper.Default.PreScaledImageLayoutTransformScaleY}" />  
</ContentPresenter.LayoutTransform>  

Note that when using image pre-scaling, either the original image size has to be specified, or a reverse layout transform has to be applied to the result, to maintain the desired original image size

Constructors

DpiPrescaleThemedImageConverter()

Initializes a new instance of DpiPrescaleThemedImageConverter.

Properties

DpiHelper

Gets the default DpiHelper.

Methods

Applies to

Táirge Leaganacha (As feidhm)
Visual Studio SDK 2015, 2017 (2019, 2022)