社区首页 >问答首页 >如何在XAML/WPF中存储和检索多个形状?

如何在XAML/WPF中存储和检索多个形状?
EN

Stack Overflow用户
提问于 2009-02-02 08:48:40
回答 2查看 3.9K关注 0票数 3

使用XAML / WPF做一些本应该很简单的事情似乎有很多问题--我用矩形和椭圆等形状创建了一些基于XAML的图像来创建图标,这些图标需要我的应用程序的其他部分使用--但我似乎找不到如何做到这一点--我似乎能够在资源字典中存储画布,但无法在任何其他窗口中使用它。如何做到这一点-这些是简单的图像,只是两个或三个形状,我想在我的项目中使用!

图像也必须是可调整大小的-我知道如何存储路径,但是这些形状包含我想要保留的渐变样式,加上我不知道如何将矩形转换为路径和颜色数据。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-03 05:51:00

您应该使用绘图,并使用DrawingBrush来显示它,就像KP禤浩焯建议的那样,或者使用DrawingImage和图像控件,但是如果您不能使用绘图,您可以在VisualBrush中使用画布。

代码语言:javascript
代码运行次数:0
复制
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
    <VisualBrush x:Key="Icon">
        <VisualBrush.Visual>
            <Canvas Width="10" Height="10">
                <Ellipse Width="5" Height="5" Fill="Red"/>
                <Ellipse Width="5" Height="5" Fill="Blue" Canvas.Left="5" Canvas.Top="5"/>
            </Canvas>
        </VisualBrush.Visual>
    </VisualBrush>
</Page.Resources>
    <Rectangle Width="100" Height="100" Fill="{StaticResource Icon}"/>
</Page>
票数 7
EN

Stack Overflow用户

发布于 2009-02-02 12:19:36

您不希望使用画布将这些资源存储在资源字典中。几何体的根可能类似于DrawingBrush (特别是在使用Expression Design创建图像的情况下),这些项需要添加到资源字典中,如下所示:

代码语言:javascript
代码运行次数:0
复制
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <DrawingBrush x:Key="YourResourceKey">
<DrawingBrush.Drawing>
<DrawingGroup>
<!-- This can change a lot, but a typical XAML file exported from a Design image would have the geometry of the image here as a bunch of Paths or GeometryDrawings -->
</DrawingGroup>
</DrawingBrush.Drawing>
</ResourceDictionary>

我假设您知道如何在您的应用程序中引用此资源字典。

要使用这些资源,您只需将它们分配给适当的属性。对于形状类型的图像,您可以将它们分配给类似矩形的填充属性(还有很多其他方法,但这只是一个简单的方法)。这里有一个例子:

代码语言:javascript
代码运行次数:0
复制
<Button>
   <Grid>
      <Rectangle Fill="{StaticResource YourResourceKey}" />
   </Grid>
</Button>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/503873

复制
相关文章
[译] 更可靠的 React 组件:组合及可重用性
原文摘自:https://dmitripavlutin.com/7-architectural-attributes-of-a-reliable-react-component/
江米小枣
2020/06/15
2.9K2
怎样开发可重用组件并发布到NPM [每日前端夜话0x24]
摘要:本文着眼于使用具有内置功能和样式的组件来扩充HTML。 我们还将学习如何通过 NPM 使这些自定义元素在项目中得到重用。
疯狂的技术宅
2019/03/27
1.1K0
怎样开发可重用组件并发布到NPM [每日前端夜话0x24]
如何使用SASS编写可重用的CSS
Sass 是一个CSS预处理程序,至今使用广泛,它之所以流行,是因为它修复了几个CSS缺陷:
前端小智@大迁世界
2022/06/15
7.7K0
如何使用SASS编写可重用的CSS
Logstash: 如何创建可维护和可重用的 Logstash 管道
Logstash 是一种开源数据处理管道,它从一个或多个输入中提取事件,对其进行转换,然后将每个事件发送至一个或多个输出。 一些 Logstash 实现可能具有多行代码,并且可能处理来自多个输入源的事件。 为了使此类实现更具可维护性,我将展示如何通过从模块化组件创建管道来提高代码的可重用性。
腾讯云大数据
2020/07/28
1.3K0
Logstash: 如何创建可维护和可重用的 Logstash 管道
在Vue中创建可重用的 Transition
Vue.js中的transition确实很棒。 毫无疑问,它们可以非常轻松地让应用程序栩栩如生,但是通常必须在每个项目中从头开始编写它们,甚至还需要引入animate.css之类的CSS库来使它们功能更强大。
前端小智@大迁世界
2020/06/04
9.8K0
在Vue中创建可重用的 Transition
开发容器:可重用的开发环境
作者 | Avdi Grimm 译者 | 明知山 策划 | 丁晓昀 拿着 Chromebook 在洗车房做开发 那天,我把车开到了洗车场。这是一个高级洗车场,你把车交给工作人员,然后等着他们把车里里外外清洗干净。 我要做的就是打发时间了。我还有一些代码要写,但当时我只有一台装在包里的小 Chromebook 和 WiFi 连接。 于是,我在 GitHub Codespaces 中打开了这个项目,然后在上次停下的地方继续,在云端运行我的开发环境。 不只是编辑器,而是整个为我的项目定制的虚拟机。
深度学习与Python
2023/04/01
1.2K0
开发容器:可重用的开发环境
代码质量--可重用代码
可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。
FunTester
2023/08/04
1690
代码质量--可重用代码
可重用性的6个级别
这是有关级别的基本概述。我即将举行的课程“ 可重用组件 ”探讨了每个组件以及如何充分利用它们。
公众号---人生代码
2020/08/11
1.1K0
Vue3 Composition API中的提取和重用逻辑
Vue3 Composition API可以在大型项目中更好地组织代码。然儿,随着使用几种不同的选项属性切换到单一的 setup 方法,许多开发人员面临的问题是… …。
张张
2020/04/26
1.8K0
Vue3 Composition API中的提取和重用逻辑
ES中的api调用测试
SearchRequest可用于与搜索文档、聚合、建议有关的任何操作,还提供请求突出显示结果文档的方法。 
一个风轻云淡
2023/10/15
2240
调用谷歌翻译接口_api如何调用
在平时使用谷歌翻译的过程中,经常会遇到需要批量翻译大量文本的情景,这种时候需要调用谷歌翻译的API
全栈程序员站长
2022/11/03
4.7K0
如何实现可伸缩的 etcd API?
使用etcd grpc-proxy start的命令开启 etcd 的 gRPC proxy 模式,包含上表中的静态成员:
aoho求索
2021/06/16
1.4K0
代码质量第 2 层 - 可重用的代码
可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。
前端GoGoGo
2021/12/14
9330
代码质量第 2 层 - 可重用的代码
可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。
社区小番茄
2022/01/17
3.7K7
代码质量第 2 层 - 可重用的代码
96-可重用的TCP服务器
在95-socket基础:TCP服务器流程中,TCP服务器只能一个客户端连接,客户端也只能发送一条消息。本例允许客户端发送多条消息,输入end结束。客户端退出后,服务器程序不再退出,可以为下一个客户端提供服务:
凯茜的老爸
2018/09/11
1.1K0
ArkTS-@Styles定义组件重用样式
@Styles可以定义在组件内或全局,在全局定义时需在方法名前面添加function关键字,组件内定义时则不需要添加function关键字。
酒楼
2023/06/23
4670
在小程序中调用API在小程序中自定义弹窗组件
表明它是一个组件,我们称之为“子组件” 3. 注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。(只使用class)
九旬
2020/10/23
3K0
Vuejs中父组件主动调用子组件的方法
我们都知道,vue是单向流,但是有时候我们需要在父组件中主动通知子组件一些信息,使其做出一些响应变化,那么如何在父组件中去主动调用子组件的方法呢?Vue当然给我们提供了方法,如下:
飞奔去旅行
2019/06/13
5K0
WordPress可重用自定义css样式
因为别人的友情链接模板样式都是针对性的对于他们的主题使用的,自己搜了一下插件商店并没有现成的插件,只有自己写一个友情连接的页面样式,但是当前整站使用的是一个整体主题,不知道能不能修改,就慢慢从主题编辑器里面找。
Diuut
2022/11/22
6630
WordPress可重用自定义css样式
代码质量第2层-可重用的代码!
导语 | 腾讯云加社区精品内容栏目《云荐大咖》,特邀行业佼者,聚焦前沿技术的落地与理论实践,持续为您解读云时代热点技术,探秘行业发展新机。 可重用的代码指:在相似业务场景下,用的是同一份代码。 可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。 可重用的代码可以减少因需求变动,导致多次改动和漏改的情况。试想,要修改全站提交按钮的颜色,如果全站有100个包含提交按钮的页面,每个页面的按钮的样式都没复用,这改动量和漏改的风险都
腾讯云开发者
2022/01/20
8340

相似问题

无法使用angular translate在angular中翻译

11

在Angular拦截器中使用Angular服务

110

在Angular应用程序中使用angular元素

11

如何使用@ Angular /upgrade在Angular 1应用中使用angular 2组件

112

如何使用angular-qrcode Angular?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档