标签: expression-blend

在xaml中使用数据模板时,如何以不同方式设置不同的项目?

我希望从datatemplate生成的元素看起来有所不同,具体取决于模型中的某些属性.例如,我希望以各种颜色显示文本,或者为每个生成的元素显示不同的图像或路径绘图.我知道如何一般地做到这一点,但我正在寻找一种解决方案,允许设计师在不触及代码的情况下编辑Expression Blend中的视觉细节.例如最简单的解决方案:

   <DataTemplate>
        <StackPanel Orientation="Horizontal"> 
            <Image Source="{Binding MyImageSource}"/>
            <TextBlock Width="200"  Text="{Binding MyText}" Forecolor="{Binding MyColor}"></TextBox> 
        </StackPanel> 
    </DataTemplate> 
Run Code Online (Sandbox Code Playgroud)

其中'MyImageSource'和'MyColor'是项目模型(ImageSource和Brush类型)的属性,不能满足我的需求,因为我不想分配这些值.我希望设计师这样做.我的模型不是'MyImageSource'和'MyColor'属性,而是具有类型为enum或string(或其他类型)的'ItemType'或'ItemStyle'属性.我不是在寻找"宗教"MVVM的严格解决方案.我唯一的要求是避免设计师等待我按照他的指示纠正代码,例如"将列表Y中的X类型的项目颜色更改为#FFAACC",因为它似乎在某种程度上违反了SoC规则.

编辑(根据答案):

我找到了bendewey 在这里描述的类似解决方案- 它需要使用ItemsSource属性为控件派生自定义控件.为每种元素类型使用不同数据模板的想法很简洁,但在我看来,它涵盖了我们想要为每个项目生成完全不同的可视元素的情况.当元素仅在某些颜色和图像上有所不同(并且除此之外还包含许多常见元素),那么为每个元素类型创建单独的数据模板将导致不必要的代码(xaml)重复.在这种情况下,弗拉德的解决方案更适合.除了两个人之外还有其他技术吗?

.net data-binding silverlight xaml expression-blend

3
推荐指数
1
解决办法
2473
查看次数

Visual Studio和Expression Studio有什么区别?

我有visual Studio 2008.

我注意到我使用Visual Studio制作WPF应用程序.这是否意味着它可以完成Expression Studio的工作?

我将安装Visual Studio 2010.这是否取消了Expression Studio的必要性?

wpf visual-studio-2010 visual-studio-2008 expression-blend

3
推荐指数
1
解决办法
4602
查看次数

每当我们使用构建配置时,为什么Expression Blend 4的设计师不工作?

我在使用Expression Blend 4时遇到了一个奇怪的问题.我一直在使用Blend 4和Visual Studio 2010一段时间而没有发生任何事故(除了超常频繁的崩溃).现在我们的图形设计师想要开始使用Blend来做一些修饰工作.

我们能够让Blend在他的计算机上编译解决方案.不幸的是,当我们尝试打开任何XAML文件时,我们从设计者那里得到错误,其中通过合并资源字典和附加属性包含的资源无法识别.基本上,即使Blend正在编译没有错误的解决方案,也好像看不到构建工件.

我们的设置中唯一奇怪的是我们的解决方案包含多个构建配置,您无法在Blend中更改构建配置.

为什么你认为Blend的设计者无法加载它构建的文件?

silverlight designer build expression-blend silverlight-4.0

3
推荐指数
1
解决办法
1738
查看次数

在XAML中的passwordBox中居中文本

我正试图将文本置于PassWord框中:

在Blend中,对齐的Text属性都被禁用.还有另一种方法吗?

谢谢您的帮助.

silverlight xaml visual-studio-2010 expression-blend

3
推荐指数
1
解决办法
3611
查看次数

表达式混合错误 - 值不能为空.参数名称:stream

尝试在Expression Blend 4的设计视图中加载用户控件xaml文件时出现上述错误.xaml本身在VS 2010中成功运行,我可以在混合中查看xaml,但不能在设计视图中查看.在"xaml视图"中查看xaml时,UserControl元素以红色下划线.有谁碰到这个问题?

silverlight xaml design-view expression-blend

3
推荐指数
1
解决办法
990
查看次数

如何在页面加载时在表达式混合4.0中启动故事板/时间轴

对于在网页中使用Microsoft Expression blend开发Silverlight应用程序,我仍然有点新鲜.

我使用Expression Blend 4.0构建了一个故事板.我希望它能在页面加载时自动在浏览器中启动,但我无法弄明白.

我已经在网上搜索了答案,但到目前为止,我发现的唯一答案似乎是早期版本的Expression Blend,而且我的环境太不同了,无法弄清楚如何将它们应用于Expression Blend 4.0.

我感谢您提供的任何帮助.

xaml expression-blend silverlight-4.0

3
推荐指数
1
解决办法
3157
查看次数

如何根据控件的属性(Top/Tabstop)设置WPF动画BeginTime

我有一个WPF应用程序,在垂直堆栈面板中有一系列按钮,类似于DVR菜单的样子.我想出了如何制作一个动画,当每个新的菜单页面被加载时,按钮/控件全部{unfade,fall,deblur,whatever}成为现实,这很好但有点过于统一.我真正喜欢的是根据每个按钮的位置或tabstop属性,在每个按钮上启动动画.因此,例如顶部按钮将是第一个开始,然后是下一个等,直到底部按钮,可能在每次启动之间延迟50毫秒(但是这样第一个按钮不必在第二个按钮之前完成)开始).当然,我可以为每个按钮制作不同的动画,但我希望有一个更优雅的解决方案.我没有看到将任何控件的属性加载到故事板的BeginTime中的方法.有没有一种很好的方法只使用XAML,或者像这样的东西需要代码隐藏?如果是后者,是否可以将其打包成一个行为并且能够在以后以声明方式加载,或者我是否永远坚持使用命令式代码?

wpf animation xaml expression-blend

3
推荐指数
1
解决办法
9204
查看次数

WPF 4.0 InvokeCommandAction兼容性(System.Windows.Interactivity)

我在WPF 4.0中插入InvokeCommandAction(Blend 4 SDK)时遇到问题.用户控件没有显示,我有一些例外.(登录底部)没有我的xaml代码中的行,没有问题(但没有事件触发器).

我在外部灯光项目中测试了这部分代码,它的工作非常完美!也许InvokeCommandAction与may app中的东西不兼容,但是什么?

<UserControl x:Class="Project.Views.Menu.TestView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
             xmlns:Menu="clr-namespace:Project.ViewModels.Menu" 
             mc:Ignorable="d" 
             x:Name="test"
             d:DesignHeight="300" d:DesignWidth="300">

    <UserControl.DataContext>
        <Menu:TestViewModel />
    </UserControl.DataContext>
    <Grid>
        <ListBox x:Name="listBox" Width="200" 
                    MaxHeight="128" SelectionMode="Single" Margin="0">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectionChanged">
                    <i:InvokeCommandAction Command="{Binding TestCommand, Mode=OneWay}" CommandParameter="{Binding SelectedItem, ElementName=listBox}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>    
            <ListBoxItem>blabla1</ListBoxItem>
            <ListBoxItem>blabla2</ListBoxItem>
            <ListBoxItem>blabla3</ListBoxItem>
            <ListBoxItem>blabla4</ListBoxItem>
        </ListBox>
    </Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

我记录了这些错误,但我不明白:


ERROR 2011-07-26 15:18:47 – La référence d'objet n'est pas définie à une instance d'un objet.
PresentationFramework
   à System.Windows.Markup.WpfXamlLoader.TransformNodes(XamlReader xamlReader, XamlObjectWriter xamlWriter, Boolean onlyLoadOneNode, Boolean skipJournaledProperties, Boolean shouldPassLineNumberInfo, IXamlLineInfo xamlLineInfo, IXamlLineInfoConsumer xamlLineInfoConsumer, …

wpf expression-blend c#-4.0

3
推荐指数
1
解决办法
9261
查看次数

如何在Blend中编辑路径

我使用Blend为TextBox创建了一个模板的副本.我需要在ValidationErrorElement中编辑Path.Data.我怎么做?我可以看到XAML,但我无法弄清楚如何使用设计器编辑这个路径数据.

在此输入图像描述

silverlight expression-blend

3
推荐指数
1
解决办法
3274
查看次数

如何动画元素的出现

我对Expression Blend 4有疑问.

我想创建一个简单的组件出现动画,当组件的高度从0变为100%,而它下面的组件向下移动以分配所需的空间.

我的问题是只允许以像素为单位的静态值来创建这种类型的动画.但我不知道我的控制高度(实际上,它是内容和内容长度可能不同的textBox),我无法设置Height最后一个关键帧的值Auto.

我该怎么做才能完成这项任务?

提前致谢.

xaml expression-blend

3
推荐指数
1
解决办法
1993
查看次数