Иконки XAML - Как использовать? - PullRequest
7 голосов
/ 12 января 2011

У меня есть несколько векторных графических файлов в формате XAML, и я хотел бы использовать их в качестве значков / кнопок в приложении Silverlight.Подход, который я бы предпочел, состоит в том, чтобы использовать элемент управления Image и установить его исходное свойство в файл .xaml, так же, как я могу использовать обычное растровое изображение.

Но это не так просто, и я попытался включитьих как ControlTemplates в словаре ресурсов, и я даже пытался создать пользовательский элемент управления, который бы загружал Xaml динамически, но я не был очень доволен результатом, поскольку мне нужно было обернуть их в элементы управления ViewBox, чтобы обеспечить динамический размер и т. д.

Итак, мои вопросы: есть ли у кого-нибудь лучшие советы, как лучше всего использовать мои иконки xaml?Я мог бы скопировать и вставить xaml при необходимости, но мне действительно не нравится такой подход.

Заранее спасибо.

1 Ответ

5 голосов
/ 01 февраля 2011

JWendel,

Вы должны опубликовать некоторые примеры значков XAML для пояснения, но любой элемент управления контентом, например Button и ContentControl , имеет оба Content и ContentTemplate свойства. Общий ContentTemplate пример показан ниже:

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
    xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
>
    <UserControl.Resources>
        <Style x:Key="MyTriangleIcon" TargetType="ContentControl">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <Grid>
                            <Polygon Fill="Black" Stroke="Black">
                                <Polygon.Points>
                                    <Point X="0" Y="100"/>
                                    <Point X="100" Y="0"/>
                                    <Point X="100" Y="100"/>
                                </Polygon.Points>
                            </Polygon>
                            <Polygon Fill="Red" Stroke="Red">
                                <Polygon.Points>
                                    <Point X="100" Y="0"/>
                                    <Point X="0" Y="100"/>
                                    <Point X="0" Y="0"/>
                                </Polygon.Points>
                            </Polygon>
                        </Grid>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

    <StackPanel Background="White">
        <Button Width="120" Height="120" Style="{StaticResource MyTriangleIcon}" />
        <Button Width="120" Height="120" Style="{StaticResource MyTriangleIcon}" />
    </StackPanel>

</UserControl>

Вы можете вставить вышеуказанное содержимое в мой XamlViewer , чтобы быстро увидеть результаты.

Удачи,
Джим МакКарди

...