如何正确导出SketchFlow(Visual Studio 2013的混合)项目

时间:2014-08-13 07:23:22

标签: blend sketchflow

我有一个SketchFlow项目,它是我们正在设计的应用程序的原型,我正处于我想将项目导出到另一种格式进行共享的阶段。

我尝试的第一件事是:

File | Export | Export as Images...

但是,在完成运行后,我只有6个截图。我在原型中有超过30个屏幕。有谁知道为什么不导出所有屏幕?

然后我尝试了:

File | Export | Export to Microsoft Word...

这会导致以下错误:

enter image description here

有关这里发生的事情的任何想法?我试过寻找一个日志文件,但我找不到一个。

我尝试的最后一个选项是:

File | Export | Package SketchFlow Project...

这似乎完美无缺。但是,我想将图像嵌入到设计文档中,并不是真的想要手动截取屏幕截图,这将是最后的手段。

更新1

好吧,似乎某些屏幕导致问题。当我执行“导出到Microsoft Word ...”选项,并选择仅第一个屏幕时,Word文档正确导出。但是,当我添加另一个屏幕(其中一个未包含在“导出为图像”方法中的屏幕时,我再次收到我显示屏幕截图的错误。

更新2

根据评论中的要求,页面布局如下。

  • 标题组件 - 显示应用程序的整体标题和一些常用按钮。
  • 导航组件 - 所有顶级页面的菜单结构
  • 所有屏幕(登录/注册页面除外)都添加了页眉和导航组件

某些屏幕正在使用示例数据填充页面上的元素。其他只是简单的控件,放在页面上。

更新3

好的,我刚刚做了一个非常全面的测试,当使用“导出到Microsoft Word ...”时如果我排除了使用Sample Data的所有屏幕,导出就会成功完成。只要我包含任何带有示例数据的屏幕,它就会抛出异常。我只能假设“导出为图像......”在遇到包含样本数据的第一个屏幕时无声地失败。

2 个答案:

答案 0 :(得分:1)

这是一个错误。它与资源解析有关。您可以通过将ItemTemplate属性设置为本地而不是默认资源来解决此问题。

例如,使用数据绑定展示说明构建repro - http://www.microsoft.com/en-us/showcase/details.aspx?uuid=db8a7eb6-3039-4008-a9f2-f5c910bcddf3

替换ItemTemplate



<ListBox HorizontalAlignment="Left" Height="330" Margin="73,40,0,0" Style="{DynamicResource ListBox-Sketch}" VerticalAlignment="Top" Width="535" ItemsSource="{Binding Collection, Source={StaticResource snowboardData}}" DataContext="{Binding Source={StaticResource SampleDataSource}}" ItemTemplate="{DynamicResource ItemTemplate}"/>
&#13;
&#13;
&#13; 使用
&#13;
&#13;
<ListBox HorizontalAlignment="Left" Height="330" Margin="73,40,0,0" Style="{DynamicResource ListBox-Sketch}" VerticalAlignment="Top" Width="535" ItemsSource="{Binding Collection, Source={StaticResource snowboardData}}" DataContext="{Binding Source={StaticResource SampleDataSource}}">
<ListBox.ItemTemplate>
                        <DataTemplate>
                                    <StackPanel>
                                                <Image Source="{Binding Images}" HorizontalAlignment="Left" Height="64" Width="511"/>
                                                <TextBlock Text="{Binding Text}" Style="{DynamicResource BasicTextBlock-Sketch}"/>
                                    </StackPanel>
                        </DataTemplate>
            </ListBox.ItemTemplate>                                   
</ListBox>
&#13;
&#13;
&#13;

允许我导出到Word。

已向Microsoft报告此问题,应在未来的VS / Blend更新中修复。

答案 1 :(得分:0)

在与@shawty进行一些离线后,我们相信我们已经找到了导出失败的原因。当包含样本数据时,它与进行导出没有特别的关系,但更具体地说,当使用样本数据和草图控件时。

这就是我为验证这一点所做的......

  1. 创建新的草图流程项目
  2. 向页面添加了ComboBox控件
  3. 将DataSource添加到“数据”选项卡
  4. 添加了收藏属性
  5. 向集合添加简单属性
  6. 编辑数据以包含一些示例数据
  7. 将ComboBox绑定到示例数据
  8. 跑完应用程序以确保它正常工作
  9. 导出到Microsoft Word ...
  10. 一切正常
  11. 然后,我使用ComboBox - Sketch控件重复“完全”相同的过程,导出到Microsoft Word ...无法正常工作,显示上面显示的错误消息。

    来自@shawty的建议解决方法如下:

    “草图控件在功能上与引擎盖下的OOTB完全相同,它们只有一个不同的样式字典应用于它们,我的建议是采用OOTB控件,为它们添加自己的样式集给他们一个类似的外观和感觉。你只需要在应用程序级别为每个适当的控件(Button,Label,Datagrid和你使用的任何其他控件)定义一次资源字典,整个应用程序将只保持相同的外观感觉。“

    虽然这是一个非常可行的解决方案,但我认为这不是Sketch Flow应用程序中的错误。我只是不知道在哪里提出错误,因为似乎没有关于Microsoft Connect的部分提出有关Blend和/或Sketch Flow的错误。如果有人知道我可以拿这个,我很乐意听到它。