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程序有问题的主要内容,如果未能解决你的问题,请参考以下文章

Blend 2015 - 几个问题

WPF 应用程序:Visual Studio 与 Expression Blend

Blend 2015中缺少状态转换效果

Blend 5(预览版)缺少 WPF 的平台/分辨率选项卡?

在 Wpf 中使用外部实时渲染器和 Blend for VS

Windows Presentation Foundation (WPF) 项目不支持应用程序