小编Chr*_*yks的帖子

查找所有子控件WPF

我想找到WPF控件中的所有控件.我已经看了很多样本​​,看起来它们都需要将Name作为参数传递或者根本不起作用.

我有现有代码,但它无法正常工作:

public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
  if (depObj != null)
  {
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
    {
      DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
      if (child != null && child is T)
      {
        yield return (T)child;
      }

      foreach (T childOfChild in FindVisualChildren<T>(child))
      {
        yield return childOfChild;
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

例如,它不会得到DataGrid一个TabItem.

有什么建议?

c# wpf

12
推荐指数
1
解决办法
2万
查看次数

资源"x"无法解析.

我最近升级到VS 2012,因为我需要开始使用.net 4.5,但这不仅仅是重点.我的问题如下:

ResourceDictionary在我的主要项目中有一个叫做AppStyles.xaml,并且App.Xaml我有以下内容:

<ResourceDictionary>
  <ResourceDictionary.MergedDictionaries>
     <ResourceDictionary Source="AppStyles.xaml"/>
  <ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Run Code Online (Sandbox Code Playgroud)

在我ResourceDictionary有一个样式,然后我可以通过设置将此样式应用于我的任何项目中的任何按钮Style={StaticResource MyButton}.

升级到VS 2012之后,我注意到我在标题中出现了很多错误,有时它会阻止我进行调试,有时却没有!

有没有不同的方式我应该这样做或VS 2012中有问题?

wpf xaml visual-studio-2012

8
推荐指数
2
解决办法
2万
查看次数

应用范围的资源应该如何组织?

这是场景:

我一直在使用 VS 2010 使用 MEF 编写相当大的 WPF 项目。这个解决方案中有多个项目,我有一个ResourceDictionary适合我的所有风格。

AppStyles.xaml ResourceDictionary位于我的启动项目,它包含了所有的我的风格的项目。在我的内部,我App.xaml有以下内容:

<Application x:Class="Dionysus.Shell.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         DispatcherUnhandledException="UnhandledException" ShutdownMode="OnMainWindowClose">
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>

            <ResourceDictionary Source="AppStyles.xaml"/>

    </ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)

现在,这一切都在 VS 2010 的设计模式下完美运行,当我调试时,正确的样式将应用于我的所有控件。但是最近换了VS 2012,设计器已经不工作了!当我调试它时,它可以完美运行,但是每当我使用我的一种样式时,如下所示:

<Button Name="btnForward" Height="23" Margin="10,0" Style="{StaticResource DionysusButton}" Grid.Row="2" Grid.Column="0"/>
Run Code Online (Sandbox Code Playgroud)

我在 VS 2012 设计器中收到以下错误:

The resource "DionysusButton" could not be resolved.
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会发生这种情况,我已经重命名了我的Style,甚至ResourceDictionary都无济于事。

我应该在 VS 2012 中以不同的方式执行此操作,还是 VS 2012 存在问题?

我发现很多帖子都说将x:Namemy的属性更改AppStyles.xaml ResourceDictionaryx:Key将解决此问题,但我不能这样做,因为它不是ResourceDictionary.

提前谢谢

- 更新

我正在使用 …

wpf styles resourcedictionary visual-studio-2012

5
推荐指数
1
解决办法
3283
查看次数

在 Unity 中慢慢向角度旋转

我正在使用 SteamVR 并想根据控制器升高的高度旋转相机,我编写了将控制器的高度发送到我的相机脚本上的方法的脚本。

当我执行以下操作时,轮换有效:

transform.Rotate(0, 0, 30); // 30 is just to test, we will use the controller height later

但我想慢慢地做这个轮换,这不能立即发生。

我也尝试过使用 Quaternion.Lerp,但它似乎不起作用。

Quaternion.Lerp(this.transform.rotation, new Quaternion(this.transform.rotation.eulerAngles.x, this.transform.rotation.eulerAngles.y, zPosition, 0), Time.deltaTime * 5);

有什么建议?

c# quaternions unity-game-engine virtual-reality

3
推荐指数
2
解决办法
8056
查看次数

System.TypeLoadException

我在WPF应用程序中收到以下错误:

Declaration referenced in a method implementation cannot be a final method.
Run Code Online (Sandbox Code Playgroud)

我发现的唯一一件事就是问题是非虚拟方法被覆盖了,但是我检查过并且在我的对象中找不到任何东西.

编译时不会抛出错误,但只有在我调试时才会抛出.

有没有人有我可能会尝试的建议?

- 更新

OnStartup调用时,我在App.Xaml.cs 覆盖中出现错误:

var catalog = new AggregateCatalog();
catalog.Catalogs.Add(new DirectoryCatalog(localDir));
_container = new CompositionContainer(catalog);
Run Code Online (Sandbox Code Playgroud)

在_container上,升级到CSLA 4.5.10后,我收到15个LoaderException.

c# csla wpf

2
推荐指数
1
解决办法
4697
查看次数