0

<LinearGradientBrush x:Key="MaroonGradientBrush" EndPoint="0,1" StartPoint="0,0">
  <GradientStop Color="#FF0C0B0B" Offset="1"/>
  <GradientStop Color="#FFBF5656"/>
</LinearGradientBrush>

<Window 
  x:Class="GraphViewerWindow"
  RenderOptions.EdgeMode="Unspecified"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:DaedalusGraphViewer="clr-namespace:DaedalusGraphViewer"
  Title="Window1" Height="900" Width="900">
  <TextBox Background="{StaticResource MaroonGradientBrush}" />
</Window>

程序打开一个带有正确渐变画笔的窗口。但是,设计视图仍然没有加载窗口,因为它找不到 maroongradientbrush。

编辑:

发现了我的问题。正是这样:

如何移动 App.xaml 而不破坏设计器?

但没有发布的解决方案

4

1 回答 1

1

你的 XAML 是错误的。这就是为什么它不起作用

按以下方式将它们放回 App.xaml 中:

<Application ...>
   <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
               <ResourceDictionary Source="ResourceDictionaries/GraphViewerBrushes.xaml" />
               <ResourceDictionary Source="ResourceDictionaries/GraphViewerTreeViewResources.xaml" />
               <ResourceDictionary Source="ResourceDictionaries/SignalScrollViewerResources.xaml" />
               <ResourceDictionary Source="ResourceDictionaries/ValidationErrorResources.xaml" />
               <ResourceDictionary Source="ResourceDictionaries/GraphViewerToolbarResources.xaml" />
               <ResourceDictionary Source="ResourceDictionaries/SavedResourcesIMightUse.xaml" />
            </ResourceDictionary.MergedDictionaries>
       </ResourceDictionary>
   </Application.Resources>
</Application>  

如果您将所有这些资源放入应用程序的每个 UserControl 中,您将创建一个可怕的内存消耗。

StaticResources 应该可以正常工作。我在我的项目中这样做,从来没有遇到任何问题。即使您的资源存储在外部程序集中(pack://applicaton等)

于 2013-08-09T00:37:16.097 回答