blend做的wpf程序有问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了blend做的wpf程序有问题相关的知识,希望对你有一定的参考价值。
我用blend3和vs2008一起做的一个程序,在我的电脑上可以运行。我用的win7系统。同样在一个同学电脑上也可以运行,他的电脑上安装的是xp系统,同时也装有vs2008和blend3。但是在其他电脑上(没有blend3,有vs2008)不论什么系统都没法运行,exe文件打开的话,一闪就没了,源程序更是没法编译通过。不知道是少了什么文件或者什么问题。
首先使用wpf程序需要.netframeword3.5以上。如果要在没有开发环境的机器上运行,应该制作安装包。
在安装包中会有正对系统软件安装情况的检测,如果不合适,会提示安装必要的软件。
不要拷贝你生成的EXE直接执行。 参考技术A 编译不通过提示的是什么错误?
WPF:在 Expression Blend 4 中编辑 ContextMenu 或 ToolTip:错误“不能有逻辑或可视父级”。
【中文标题】WPF:在 Expression Blend 4 中编辑 ContextMenu 或 ToolTip:错误“不能有逻辑或可视父级”。【英文标题】:WPF: Editing ContextMenu or ToolTip in Expression Blend 4: error "cannot have a logical or visual parent." 【发布时间】:2010-12-28 19:05:25 【问题描述】:我想根据 Expression Blend 4 中的默认设置为 ContextMenu 或 Tooltip 创建新样式。为此,我执行以下操作(ContextMenu 的示例):
-
在 EBlend 4 中创建新的 WPF 应用程序。
将按钮放在窗口上。
为按钮创建新的 ContextMenu。
向 ContextMenu 添加两个示例项目(带有标题,即“item1”和“item2”)。
在“样式”属性下按钮 ContextMenu 属性的“属性”面板中,单击“样式”属性右侧的方块并选择“转换为新资源...”。
在打开的“创建样式资源”窗口中,为“此文档 [Window:Window]”或新资源字典选择“定义于” - 没关系。
我在消息底部获得了默认样式的 ContextMenu 的 XAML。
我想用预览编辑这个样式,所以我进入“资源”选项卡,找到我的“ContextMenuStyle1”,右键单击并选择“编辑”。
我无法编辑样式,有信息表明引发了异常“'ContextMenu' 不能有逻辑或视觉父级。”。
此外,我也无法将任何其他新样式添加到我的资源字典中,因为它显示“无法将资源添加到“ResourceDictionary1.xaml”,因为“ResourceDictionary1.xaml”包含阻止其更新的错误。”直到我关闭“ResourceDictionary1.xaml”视图并重新打开它。
任何人都可以解决这个问题并给出一个解决方案,说明如何在 Expression Blend 4 中编辑 ContextMenu 或 ToolTip 样式,通过可视化预览更改并访问它的所有属性和功能?
<Style x:Key="ContextMenuStyle1" TargetType="x:Type ContextMenu">
<Setter Property="Background" Value="DynamicResource MenuBackgroundBrush"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="DynamicResource WindowBorderBrush"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="x:Type ContextMenu">
<Border Uid="Border_93">
<Border.Style>
<Style TargetType="x:Type Border">
<Setter Property="Tag" Value="DynamicResource x:Static SystemParameters.DropShadowKey"/>
<Style.Triggers>
<DataTrigger Binding="Binding Tag, RelativeSource=RelativeSource Self" Value="True">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Padding" Value="0,0,5,5"/>
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="4" Opacity="0.8" ShadowDepth="1"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Border BorderBrush="TemplateBinding BorderBrush" BorderThickness="TemplateBinding BorderThickness" Background="TemplateBinding Background" Uid="Border_50">
<ScrollViewer CanContentScroll="True" Style="DynamicResource ComponentResourceKey ResourceId=MenuScrollViewer, TypeInTargetAssembly=x:Type FrameworkElement" Uid="ScrollViewer_9">
<ItemsPresenter KeyboardNavigation.DirectionalNavigation="Cycle" Margin="TemplateBinding Padding" SnapsToDevicePixels="TemplateBinding SnapsToDevicePixels" Uid="ItemsPresenter_5"/>
</ScrollViewer>
</Border>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
【问题讨论】:
【参考方案1】:这是 Microsoft Expression Blend 中的 bug
,请查看此链接:"'Tooltip' cannot have a logical or visual parent." when editing style in Blend 4
【讨论】:
以上是关于blend做的wpf程序有问题的主要内容,如果未能解决你的问题,请参考以下文章
WPF 应用程序:Visual Studio 与 Expression Blend
Blend 5(预览版)缺少 WPF 的平台/分辨率选项卡?