XAML 图标 - 如何使用?

发布于 2024-10-11 08:35:46 字数 319 浏览 2 评论 0原文

我有一些 XAML 格式的矢量图形文件,我想将它们用作 Silverlight 应用程序中的图标/按钮。 我更喜欢的方法是使用图像控件并将其源属性设置为 .xaml 文件,就像我可以使用常规位图图像一样。

但这并不那么容易,我尝试将它们作为 ControlTemplates 包含在资源字典中,我什至尝试创建一个自定义控件来动态加载 Xaml,但我对结果并不太满意,因为我需要将它们包装在ViewBox 控件允许动态大小等。

所以我的问题是是否有人有任何最佳实践建议如何最好地使用我的 xaml 图标? 我可以在需要时复制粘贴 xaml,但我真的不喜欢这种方法。

提前致谢。

I have some vector graphic files in XAML format and I would like to use them as icons/buttons in an Silverlight application.
The approach I would have preferred is to use an Image control and set its source property to the .xaml file, much like I can use a regular bitmap image.

But its not that easy and I have tried to include them as ControlTemplates in resource dictionary's and I even tried to create a custom control that would load the Xaml dynamically but I wasn't really pleased with the result, since I needed to wrap them in ViewBox controls to allow dynamic size etc.

So my questions is if any one has any best practice advices how to best use my xaml icons?
I could copy-paste the xaml when needed but I really dont like that approach.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

勿忘初心 2024-10-18 08:35:46

JWendel,

您应该发布一些 XAML 图标示例来澄清,但任何内容控件(例如 ButtonContentControl)都具有 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 快速查看结果。

祝你好运,
吉姆·麦柯迪

JWendel,

You should post some examples of your XAML icons to clarify, but any content control, like Button's and ContentControl's, have both Content, and ContentTemplate properties. A shared ContentTemplate example is shown below:

<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>

You can paste the above content into my XamlViewer to quickly see the results.

Good luck,
Jim McCurdy

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文