代码之家  ›  专栏  ›  技术社区  ›  arnobpl

如何在不使用TryFindResource的情况下从codebehind获取StaticResource的实际对象?

  •  0
  • arnobpl  · 技术社区  · 6 年前

    我用了一个 StaticResource XAML 文件我已经命名了 静态源 x:Name 静态源 .

    在XAML文件中:

    <Window x:Class="MyProject.MainWindow"
            ...
            Title="MainWindow" Height="350" Width="525">
    
        <Grid>
            <StaticResource ResourceKey="MyButtonResource" x:Name="MyResource" />
        </Grid>
    </Window>
    

    Button buttonFromStaticResource = MyResource.SomeProperty as Button;
    

    这里,我需要像这样的东西 SomeProperty 或获取实际对象的任何方法(在本例中,它是 Button 对象)。

    获取对象的一种方法是使用 TryFindResource

    Button buttonFromStaticResource = this.TryFindResource("MyButtonResource") as Button;
    

    但是这个解决方案涉及一个字符串参数。有没有比这更好的解决方案,这样我就可以使用 MyResource 直接(通过杠杆作用) 在XAML文件中),而不使用任何字符串?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Pratius Dubey    6 年前

    如何在c#中读取静态资源,请检查下面的代码

    <Window x:Class="MyProject.MainWindow"
            ...
            Title="MainWindow" Height="350" Width="525">
    
        <Grid>
            <StaticResource ResourceKey="MyButtonResource" x:Name="MyResource" />
        </Grid>
    </Window>
    

    c#

    var currentResources= this.Resources["MyButtonResource"];