wpf – 访问xaml中属性后面的代码

这是我的第一篇文章,所以它看起来并不那么好,但我会尽我所能……

我现在已经在网上搜索了几个小时,这可能听起来很傻但我找不到答案.

我有Window类,在.cs文件中我有一些属性,例如

public ImageSource Obal { get; set; }

然后在设计师中添加了一些图像,按钮等.还设置了窗口的名称:Name =“Somename”

我想知道如何访问该属性,所以我可以,例如,设置一些图像的源属性,如下所示:

Image Name =“Blah”Source =“Obal”

现在我知道我可以通过绑定设置Source值:

Source =“{Binding ElementName = karta,Path = Obal}”

但我每次都必须这样吗?所有这些属性都是来自Window类…而且我也问,因为我想在Image.Style的Storyboard中更改image.Source …而且我不能在那里使用绑定…

我希望我很清楚,我提前感谢你们.

最佳答案 要访问XAML文件中属性后面的代码,您需要执行3个步骤:

>在xaml文件中引用命名空间,如:

xmlns:local="clr-namespace:AccessACodeBehindPropertyinXaml"

>提供您在Windows.Resources标记中引用的命名空间的密钥.此密钥将允许访问XAML文件中引用的命名空间的任何类,属性,例如

<Window.Resources>
        <local:ImageClass x:Key="imageClass"/>
</Window.Resources>

>现在你只需要使用Source& amp;和XAML绑定控件的属性. Binding类的路径属性如下:

<Label Content="{Binding Source={StaticResource imageClass}, Path=ImageName}" Name="label1" />

我编写了一个示例应用程序,它将类属性绑定到标签控件.看一看

MainWindow.xaml.cs文件:

namespace AccessACodeBehindPropertyinXaml
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();                       
        }
    }

    public class ImageClass
    {
        string m_ImageName;

        public ImageClass()
        {
            m_ImageName = "My Image Name";
        }
        public string ImageName
        {
            get
            {
                return m_ImageName;
            }
            set
            {
                m_ImageName = value;
            }
        }
    }
}

MainWindow.xaml

<Window x:Class="AccessACodeBehindPropertyinXaml.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:AccessACodeBehindPropertyinXaml"
        Title="MainWindow" Height="350" Width="525" Name="ImageWindow">
    <Window.Resources>
        <local:ImageClass x:Key="imageClass"/>
    </Window.Resources>
    <Grid>
        <Label Content="{Binding Source={StaticResource imageClass}, Path=ImageName}" Height="28" HorizontalAlignment="Left" Margin="159,126,0,0" Name="label1" VerticalAlignment="Top" Width="109" />
    </Grid>
</Window>

如果您需要进一步澄清,请告诉我.

点赞