Silverlight: прозрачное изображение на кнопке - PullRequest
1 голос
/ 17 января 2009

Я хотел бы использовать прозрачный png-файл на кнопке silverlight. Кроме того, я бы хотел, чтобы сама кнопка была прозрачной, чтобы фон (позади кнопки) просвечивал. Я обнаружил, что если я установил непрозрачность кнопки, это также повлияет на изображение. Я не хочу, чтобы все изображение было прозрачным - только его прозрачные части, как определено в PNG.

Есть идеи, как этого добиться?

Ответы [ 3 ]

3 голосов
/ 18 января 2009

Silverlight поддерживает прозрачность PNG. Это работает:

<UserControl x:Class="SilverlightApplication17.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="Green">
<Button Width="200" Height="200">
  <Button.Content>
    <Image Source="http://wildermuth.com/images/tx_head.png" />  
  </Button.Content>
</Button>

Вы должны увидеть изображение прозрачным для задней части кнопки. Если вы хотите, чтобы кнопка была прозрачной, вам нужно создать шаблон кнопки, который будет прозрачным Ссылка в ответе texmex5 является нисходящей.

1 голос
/ 25 февраля 2009

Из моих последующих исследований кажется, что не все прозрачные PNG будут работать. Они должны быть альфа-пленки (в отличие от палитры). Они также должны быть как минимум 16-битными изображениями. Стандартный 8-битный не работает.

0 голосов
/ 15 августа 2013
<UserControl x:Class="MyProject.SilverlightControl1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

        <Grid x:Name="LayoutRoot" Background="Green">
            <Image Width="18" Height="18" DataContext="{Binding PrintMovementCommand}" Source="{Binding IconSource}" VerticalAlignment="Center" HorizontalAlignment="Center" ToolTipService.ToolTip="{Binding Title}" Cursor="Hand">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseLeftButtonUp">
                        <i:InvokeCommandAction Command="{Binding Command}"/>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </Image>
        </Grid>

    </UserControl>
...