1

我现在正在尝试做的事情:修改 Expression Blend UI / Visual Studio,在我的依赖属性之一上添加一个按钮,当我单击它时,它会创建一个新触发器。

工作原理:我创建了按钮,它出现在 UI 中,这很好。

什么不起作用:我无法修改资源以添加触发器(如果我介入,它可以工作,但不会在全局资源上修改,仅在我认为的实例上)。

我在 Visual Studio 中有我的主要项目,以及一个带有如下按钮的属性:

视觉工作室用户界面

按下按钮时会发生以下情况:

  • 我得到了包含该依赖属性(好的)的控件。
  • 我搜索了包含要修改的资源的资源文件(确定)。
  • 我更新了资源,但它不会替换磁盘上的资源。

我认为是因为我只在内存上修改它,所以它在“空中”

我现在不知道该去哪里...我需要帮助

我修改资源的代码位于另一个 DLL 中,即 MyLibrary。设计.cs

我正在使用 Visual Studio 2010 / Blend 4 / .NET 4.0

4

1 回答 1

0

这是我目前能想到的一种方法,但不幸的是我现在无法测试它。您仍然可以检查它是否适合您。

你可以有一个类,比如ResourceContainer.cs,并将你的控件作为公共静态值收集在其中,并让你的控件成为一个按钮:

   public static Button MyButton;

然后你可以在你的代码隐藏中使用它:如果你的窗口是MainWindow.xaml,并且说你需要在一个网格中你的特定控件,那么你可能有类似的东西:

<Window x:Class=...
        ...(namespace stuff)...
        Title="MainWindow" ...(size stuff)...>

    <Grid x:Name="MyGrid">
    ...(your code here)...      
    </Grid>
    ...
</Window>

然后MainWindow.xaml.cs你可以ResourceContainer.cs像这样使用:

...
ResourceContainer rc;

...

MyGrid.Resources.Add("MyKey", rc.MyButton);

...

(when you need it)
rc.MyButton.Triggers.Add(TriggerBase item);
...
于 2012-11-15T20:17:32.173 回答