Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinRT上的自定义ResourceDictionary在运行时或设计时工作_C#_Windows Runtime_Winrt Xaml - Fatal编程技术网

C# WinRT上的自定义ResourceDictionary在运行时或设计时工作

C# WinRT上的自定义ResourceDictionary在运行时或设计时工作,c#,windows-runtime,winrt-xaml,C#,Windows Runtime,Winrt Xaml,我使用了来自的想法,并试图将其应用到WinRT应用程序中。但不幸的是,它要么在设计时不起作用,要么在运行时不起作用 如果源属性是字符串,则它在设计模式下不起作用,并且Visual Studio显示错误消息“无效URI:无法确定URI的格式” 如果源的类型为URI它在设计模式下工作,但我在运行时遇到一个异常:“未能分配给属性源” 在这两种情况下都能工作吗 public class DesignTimeResouceDictionary : ResourceDictionary { // wo

我使用了来自的想法,并试图将其应用到WinRT应用程序中。但不幸的是,它要么在设计时不起作用,要么在运行时不起作用

如果源属性是
字符串,则它在设计模式下不起作用,并且Visual Studio显示错误消息“无效URI:无法确定URI的格式”

如果源的类型为
URI
它在设计模式下工作,但我在运行时遇到一个异常:“未能分配给属性源”

在这两种情况下都能工作吗

public class DesignTimeResouceDictionary : ResourceDictionary
{
   // works at run-time
   public new string Source {
      get {
         return base.Source.ToString();
      }
      set {
         if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
            base.Source = new Uri(value);
      }
   }

   // works at design time
   public new Uri Source {
      get {
         return base.Source;
      }
      set {
         if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
            base.Source = value;
      }
   }
}
App.xaml中的用法:

<ResourceDictionary>
   <ResourceDictionary.MergedDictionaries>
      <local:DesignTimeResourceDictionary Source="OnlyForDesignTime.xaml"/>
   </ResourceDictionary.MergedDictionaries>
</ResouceDictionary>


所以我不知道两个属性的名称是否相同。也许是“设计源”和“源”?如果是这种情况,那么字符串属性就不需要“new”。进一步考虑后,我想知道Source是否有一个在运行时未被触发的私有依赖属性。