我已经阅读了多篇关于此的教程/博客/ stackoverflow问题,包括以下内容:
还有更多。
他们中的大多数已经过时了。 有人建议Activity Designer库名称应以 Design.dll 结尾,其他人则表示应以 VisualStudio.Design.dll 结尾。 有人说库应该部署到visual studio bin路径,其他人说它不是必需的。
这一切都非常令人困惑。
我可以使活动工具箱位图仅在使用时正确显示 ToolboxBitmapAttribute直接在活动上,并且仅当嵌入的bmp图标位于活动库中时,例如:
Q
如果我将位图移动到活动设计器库,引用活动库中的活动设计器库,并直接在活动上使用ToolboxBitmapAttribute(使用正确的嵌入路径并使用活动设计器库中的类型) - 它不行。
[ToolboxBitmap(typeof(MyActivity), "Resources.Bitmaps.MyActivity.bmp"]
public class MyActivity : CodeActivity
{
}
如果我在ActivityDesigner库中使用IRegisterMetadata接口,请将ToolboxBitmapAttribute注册到元数据存储中的MyActivity类型:
[ToolboxBitmap(typeof(MyActivityDesigner), "Resources.Bitmaps.MyActivity.bmp"]
public class MyActivity : CodeActivity
{
}
该活动仍然没有工具箱位图。
活动设计师工作正常!
所以似乎VS正在加载MyActivities.Design.dll库,但出于某种原因忽略了ToolboxBitmapAttribute。
我会很感激这个暗示。
答案 0 :(得分:0)
您可能想尝试使用ActivityDesigner的Icon属性。确保图像位于活动设计器的项目中,并标记为“构建操作上的资源”:
<sap:ActivityDesigner.Icon>
<DrawingBrush>
<DrawingBrush.Drawing>
<ImageDrawing>
<ImageDrawing.Rect>
<Rect Location="0,0" Size="25,25" ></Rect>
</ImageDrawing.Rect>
<ImageDrawing.ImageSource>
<BitmapImage UriSource="MyActivityIcon.png" />
</ImageDrawing.ImageSource>
</ImageDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</sap:ActivityDesigner.Icon>