【问题标题】:How to assign a property in xaml to a variable inside another class?如何将 xaml 中的属性分配给另一个类中的变量?
【发布时间】:2014-03-23 16:16:17
【问题描述】:

假设我有一个用户控件,它基本上是一个按钮,在 XAML 中设置。该按钮是否有可能从不同文件中的不同用户控件类获取其背景颜色,以便在运行时可以更改?

我从谷歌找到的只是关于主题的讨论,以及它们都希望如何引用主题文件或主窗口,但我没有发现它们中的任何一个有用,因为对于一个,我一点也不知道如何在运行时更改主题文件(如果可能的话),其次,我计划使用这些控件,我也在其他项目中构建,所以我不希望它们依赖于与主窗口有关的任何事情。

【问题讨论】:

    标签: vb.net xaml


    【解决方案1】:

    在按钮的背景颜色上使用 WPF 的 DynamicResource 标记扩展,然后您可以更改资源,从而在运行时动态更改主题。

    查看 Stackoverflow 对 WPF Dynamically change resource file and theme 的回复。

    【讨论】:

      【解决方案2】:

      所有这些解释的东西都太令人困惑了,而答案就像馅饼一样简单。

      step1:在你的项目中添加一个资源目录文件并制作你的变量,类似于

      <SolidColorBrush x:Key="lsd" />
      

      第2步:添加到每个要访问资源的用户控件

      <UserControl.Resources>
          <ResourceDictionary Source="myResourceName.xaml"/>
      </UserControl.Resources>
      

      stel3: 使用资源像

      <Grid Background="{DynamicResource lsd}/>
      

      步骤4:通过调用类似的东西修改任何受影响控件中资源中的变量

      Resources("lsd") = Brushes.Blue
      

      第 5 步:为了增加欢乐,将这样的子添加到您的控件中

      Public Sub lsdMode() Handles Me.MouseMove
          Dim r As New Random
          Resources("sbL1") = New SolidColorBrush(Color.FromRgb(r.Next(255), r.Next(255), r.Next(255)))
      End Sub
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        • 2011-10-10
        • 1970-01-01
        相关资源
        最近更新 更多