人都是产品经理社区推出产品经理培训课程,让BAT产品总监手把手带你学产品吧!
现在制作原型过工具多多,但Axure仍然是大多产品汪的得力工具。刚刚过去的8月份,Axure 8.0 BETA版本悄然发布,随着大多数Axure粉丝的惊呼声中,新版本在诸多功能上进行了优化。好,废话不多说,这里掠过Axure入门基本操作,主要说说Axure 8.0给我带来什么新体验。
最牛XX的功能要先说,Axure 8.0在交互方面还是下了苦功夫的。
首先,说明的是,反转特效是在动态面板中不同状态下切换实现的。我们将动态面板命名为1。之后设置两个状态,state1与state2,这两个状态中各有一个不同颜色的矩形。设置单击动作,点击使动态面板1由state1切换到state2。
在这里自由选择反转的方向,便可自由实现转场翻转的交互效果了。
如果想做一个控件一边移动一边旋转,大家想想现在在Axure 7.0中怎么实现呢??哈,不好做吧,Axure 8.0设置了多动作并发机制,可以方便快捷的实现这一交互。而且Axure 8.0将选择直接设置在动作列表中,让每个产品汪方便快捷的完整旋转的交互样式。
在Axure 8.0中制作旋转效果异常简单,直接添加动作即可,相信每个产品汪一看就都明白,我也不在这里多废话了。同时设置Move与Rotate这两个动作可以同时并发,这样是不是又能产生很多美好的交互。
在Axure 7.0中只有动态面板可以设置尺寸,在Axure 8.0中扩大了这个范畴,你能够设置图形部件、图像、快照、热点、文本框等其它形式的组件的尺寸大小。并且在Axure 8.0中增加了”anchor”功能,该功能可以确定以某坐标作为原点(不动点)进行放大。
在Axure 8.0的交互中中增加了”Fire Event”事件,大家把交互事件拉到最后就看见了!
这个事件的主要特点是相关触发功能。什么意思呢,比如我点击了控件A,除了触发A控件的动作,还可以方便的触发B控件的各种交互事件。其实这个在Axure 7.0中也可以实现,只是有了“Fire Event”让这些触发更方便快捷。
估计是Axure的设计者深知每个产品汪每天被老板虐,被开发虐,被销售虐的事实,特地增加了标注部件,这个让每个产品汪能够好好做一个有情怀的产品汪。
这里重点说说”Snapshot”控件功能,别的标签控件都比较简单,大家一看就会。我们将Snapshot控件拖入编辑页,双击打开设定要显示的页面。这样我们就可以看到设计页面的缩略图了,而且点击还可以进入相应页面。如果页面有所改变,那Snapshot也会跟着改变,是不是很牛XX!
Duang~~~~,在Axure 8.0中增加了布尔运算,可以对图形进行交并补运算了,是不是很强大,妈妈再也不用担心了。首先做个小小的知识补充,看看下图明确一下布尔运算的定义。
在Axure 8.0中,在右侧属性栏中可以找到如下四个图标,分布根据形状大家也能判断出每个图标的用途。
这个工具其实不用多说,用来画曲线的么,从此之后能够在Axure中画图了。画画我实在不行,只能画了一个丑陋的大白….
其实Axure 8.0还增加了一些实用的小功能,比如:部件尺寸的比例锁定、更多的图形编辑功能等。这些功能使我们的原型制作更加顺畅,我们一起来期待Axure 8.0正式版的发布。
本文由 @Gery 原创发布于人人都是产品经理 ,未经许可,禁止转载。
以前的项目中,做摄像头的图片采集,我们一般还是需要做一个封装处理的,在较新版本的DevExpress控件里面,增加了一个CameraControl控件,可以直接调用摄像头显示的,因此也可以做头像采集等功能,本文介绍如何基于这个控件做相关的图像采集操作。
DevExpress WinForms Subscription官方最新版免费下载试用,历史版本下载,在线文档和帮助文件下载-慧都网
该控件从15.1开始,就开始加入控件组了,控件的使用很简单,直接拖动到界面就可以在WinForm界面上使用了。本案例基于16.1进行开发的,因此也都具有这些控件模块的。
例如我们直接把CameraControl控件拖动到界面上,然后运行界面就可以看到如下效果。
在摄像的界面上,有一个配置的选项,可以对摄像头的分辨率等参数进行设置处理。
同时在PictureEdit控件上,也可以开启摄像头采集功能,只需要在控件属性里设置一下即可:
运行界面得到效果如下所示。
这个采集图片的菜单项文字没有汉化,因此有点怪异,我们也可以通过使用其内置的对话框(TakePictureDialog )进行图片采集操作。
具体代码如下所示:
private void btnInternal_Click(object sender, EventArgs e)
{
TakePictureDialog d = new TakePictureDialog();
if (d.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.pictureEdit1.Image = d.Image;
}
}
调用得到的对话框是内置的,界面也是无法修改调整,包括文字内容。
为了更好的实现对头像的采集操作,我们可以仿照这个对话框模块,做一个自定义的窗体,实现摄像头图像的采集操作,如下所示。
同时我们在对话框窗体里面设置一个Public的图像对象属性,如下所示:
/// <summary>
/// 采集图片
/// </summary>
public Image CameraImage { get; set; }
这样我们就方便设置和提取图像信息了。
捕获图像的代码就是从摄像控件里面获取一个快照就可以了,如下所示。
private void btnCapture_Click(object sender, EventArgs e)
{
this.CameraImage = this.cameraControl1.TakeSnapshot();
this.pictureEdit1.Image = this.CameraImage;
}
然后在窗体退出的时候,记得释放摄像头的资源,否则第二次就提示占用,无法使用了。
private void FrmCamera_FormClosing(object sender, FormClosingEventArgs e)
{
this.cameraControl1.Dispose();
}
整个对话框的完整代码如下所示。
public partial class FrmCamera : Form
{
/// <summary>
/// 采集图片
/// </summary>
public Image CameraImage { get; set; }
public FrmCamera()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
private void btnCapture_Click(object sender, EventArgs e)
{
this.CameraImage = this.cameraControl1.TakeSnapshot();
this.pictureEdit1.Image = this.CameraImage;
}
private void FrmCamera_FormClosing(object sender, FormClosingEventArgs e)
{
this.cameraControl1.Dispose();
}
}
最后运行可以得到界面如下所示。
这种处理方式比较好,我在该控件出来之前,在基础界面类库里面,使用肖像控件来处理摄像头图像采集的。
例如在会员管理系统里面,就是利用肖像管理控件,通过之前的摄像头公用类库实现的图形采集操作的。
这里其实是利用一个摄像头类库来实现的,不过现在既然DevExpress本身就提供控件支持,那么我们也可以直接利用它了,这样更加方便,更少代码。
DevExpress WinForm控件| 下载试用
DevExpress WinForm拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
本文转载自:博客园 - 伍华聪
想象一下,创建的扩展比以往任何时候都运行得更快、更流畅!如果您最近还没有跟上,我们一直在努力改进 VisualStudio. Extensibility SDK。VisualStudio. Extensibility 帮助您构建在主 IDE 进程之外运行的扩展,以提高性能和可靠性。它还提供了一个时尚而直观的基于 .NET 8 的 API 和全面且维护良好的文档,可以帮助您开发出色的扩展。
这个17.10版本建立在我们以前的版本之上,它带来了全新的调试体验,使您更容易让您的扩展以您期望的方式运行。我们还增强了远程UI特性,添加了提示用户的新方法,并继续向项目查询 API 添加功能。
请访问 https://aka.ms/VisualStudio.Extensibility 获取最新的文档和安装说明。我们鼓励您通过 GitHub 仓库的问题跟踪报告错误并建议功能,在那里您还可以找到扩展示例来帮助您开始。
VisualStudio.Extensibility 有什么新功能?
您想要比以前更快速、更容易地开发和调试扩展吗?我们的17.10版本增加了以下功能来帮助您做到这一点:
- 调试您的扩展使用我们新的 Diagnostics Explorer
- 在 UI 中利用 XAML 资源
- 让您的扩展用户选择文件或目录
- 使用改进的查询 API 跟踪项目更改
调试您的扩展使用我们新的 Diagnostics Explorer
我们已经创建了一个强大的新工具来调试您的扩展,叫做 VisualStudio.Extensibility Diagnostics Explorer,可以在 Visual Studio Marketplace 中找到它。有了它,您就能像 Visual Studio 那样看到扩展,从而确保您正确地配置了您的扩展。
这个工具本身是作为进程内的 VisualStudio. Extensibility 扩展编写的。可以帮助您回答诸如“为什么我的命令没有显示在我期望它在 IDE 中的位置?”或“为什么我的扩展没有在我期望的时候被激活?”
检查配置
VisualStudio.Extensibility 通过消除手动维护单独的元数据文件的需要,已经使您更容易配置扩展。现在,我们在此基础上构建了 Diagnostics Explorer,它可以让您准确地看到 Visual Studio 发现了哪些扩展和组件,以及每个发现项的配置。
例如,如果您没有在 IDE 中看到命令,您可以使用命令选项卡 Diagnostics Explorer 查看已贡献给 Visual Studio 的任何命令。如果它没有出现在列表中,这是一个提示,需要再次检查您的配置以确保它被发现。如果它存在,但未启用或不可见,则可能需要检查激活约束。如果它被标记为启用和可见,您可以使用下拉菜单来查看命令放置,以确保您已经正确地放置了它。
使用 Commands 选项卡,您可以检查命令、命令集、组、菜单和工具栏、命令位置和动态命令锚点。其他选项卡允许您检查组件的其他功能区域,包括工具窗口、文档类型、文本视图等。当我们在未来的版本中添加功能时,您将能够在 Diagnostics Explorer 中检查任何新组件。
查看实时事件日志
我们知道,像您这样的扩展开发人员有时开发的扩展可能需要处理整个 IDE 中的事件,例如正在执行的命令,正在打开的工具窗口或正在创建的 TextView,所以我们添加了一个实时事件查看器,使您能够实时观察这些事件及其属性:
创建更好的激活约束
Diagnostics Explorer 中的 Activation Constraints 选项卡为您提供了创建激活约束时每个可用值的当前状态。使用此选项卡,您可以使 IDE 进入您想要用于激活的状态(例如构建项目或打开 markdown 文件),然后您可以检查每个可用表达式的值,以帮助您创建约束。
例如,假设您希望一个命令仅在编辑器中打开 C# 文件时才可见。使用 Diagnostics Explorer,您可以打开一个 C# 文件,使用 Activation Constraints 选项卡来帮助您确定需要哪些表达式来创建约束:
EnabledWhen = ActivationConstraint.ClientContext(ClientContextKey.Shell.ActiveEditorContentType, "CSharp").
在 UI 中利用 XAML 资源
XAML 资源允许您定义可以在整个项目中使用的对象,如颜色、笔刷或样式,从而加速UI开发。通过这个版本的 VisualStudio. Extensibility:我们正在添加对 XAML 资源的支持,以帮助您为扩展开发出色的UI!
与我们的其他远程UI功能(如UI控件)一致,您可以将任何带有 ResourceDictionaries 的XAML文件定义为嵌入在 .csproj 文件中的资源:
<ItemGroup>
<EmbeddedResource Include="\XamlResources.*xaml" />
<Page Remove="XamlResources.*xaml" />
</ItemGroup>
一旦定义,很容易将您的资源包含在其他组件中,以便它们可以在整个项目的 XAML 中被引用:
ResourceDictionaries.AddEmbeddedResource("XamlResources.xaml")
您甚至可以本地化您的资源:查看 Modal Dialog 示例获取更多信息,并让我们知道您的想法!
让您的扩展用户选择文件或目录
在我们之前对用户提示和自定义对话框的支持的基础上,我们增加了从扩展中显示文件和目录选择器提示的能力。例如,您可以使用 ShowOpenFileDialogAsync() 方法来提示用户选择一个文件来打开:
VisualStudioExtensibility.Shell().ShowOpenFileDialogAsync(options, cancellationToken);
使用新的 API,您可以提示用户:
- 选择一个文件打开
- 选择要打开一个或多个文件
- 选择单个文件来另存为
- 选择要打开的目录
与往常一样,如果有其他类型的用户提示对您的扩展很重要,请通过我们的问题跟踪告诉我们。
使用改进的查询 API 跟踪项目更改
我们的 17.10 版本为项目查询 API 添加了三个新特性。
跟踪查询结果的更改
TrackUpdatesAsync() 方法可以在项目系统查询中使用,以创建一个 IObserver 对象来跟踪您的查询中项目或解决方案状态的变化。例如,如果您想跟踪项目中文件的更新时间,您可以使用:
var query = await myProject
.Files
.With(f => f.FileName)
.TrackUpdatesAsync(new TrackerObserver(), CancellationToken.None);
在这个例子中,TrackerObserver 实现了 IObserver<IQueryTrackUpdates<IFileSnapshot>>,所以您可以使用您自己的自定义逻辑来处理更新事件。
查询项目规则
项目查询 API 中的每个项目现在都包含一个 RulesResults 特性,其中包括规则名称和一个项列表。您可以通过调用指定配置的 RuleResultsByName() 来访问这些规则。
var results = await querySpace
.Projects
.With(p => p.Path)
.With(p => p.ActiveConfigurations
.With(c => c.RuleResultsByRuleName("CompilerCommandLineArgs")
.With(r => r.RuleName)
.With(r => r.Items
.With(i => i.Name))))
.ExecuteQueryAsync();
跳过查询结果
我们添加了 Skip() 方法,使您能够跳过查询中的结果。
var projects = await queryableSpace.Projects
.With(proj => proj.Name)
.Skip(1)
.ExecuteQueryAsync();
这里,跳过第一个项目,返回其余的项目。
如果没有您的参与我们做不到这些!
我们需要您的帮助,因为我们将继续开发 VisualStudio.Extensibility!请尝试这个预览版,让我们知道您的想法。查看文档,浏览代码示例,并构建您的第一个扩展。您可以通过我们的问题跟踪发送反馈、报告问题或功能需求。
您还可以在我们的 VisualStudio. Extensibility GitHub repo 中找到有关突破性更改和已知问题的信息。
我们正在优先考虑扩展程序要求的功能,所以请尝试一下 VisualStudio. Extensibility,并与我们分享您的想法!
原文链接:https://devblogs.microsoft.com/visualstudio/visualstudio-extensibility-17-10/
*请认真填写需求信息,我们会在24小时内与您取得联系。