WPF - 在运行时更新自定义用户控件
本文关键字:自定义 用户 控件 更新 运行时 WPF | 更新日期: 2023-09-27 17:55:52
嘿伙计们,我创建了一个带有自定义用户控件的WPF应用程序,问题是我无法在运行时更新或更改自定义控件的属性,-->这里是用户控制的代码文件:用户控制.xaml
<UserControl x:Class="ExampleWpf.UserControlExample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
Width="Auto" Height="Auto">
<Rectangle Width="60" Height="200" Fill="#FFB65959" Name="Box1"></Rectangle>
文件:用户控制.xaml.cs
namespace ExampleWpf{
public partial class UserControlExample : UserControl
{
public UserControlExample()
{
InitializeComponent();
}
public double Box1Width
{
get { return (Box1.Width); }
set { Box1.Width = value; }
}
}
--->这是Wpf应用程序的简单代码文件:主窗口.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
UserControlExample uc = new UserControlExample();
uc.Box1Width = 100;
}
}
当用户单击按钮时,我只想在运行时更改自定义控件的宽度---->但不幸的是我没有成功请帮帮我
您正在创建用户控件的新实例,而不对其进行任何操作。
您应该找到控件的现有实例并对其进行更新。
您还应该通过依赖属性实现此类行为。这为您提供了教程中概述的各种优势,但这里的主要优势是您可以在运行时设置这样的属性。
使用放置在 xaml 中的实例(例如通过 Name-属性),如下所示:
<uc:UserControlExample Name="myUC"/>
myUC.Box1Width = 100;
另一个问题可能是,您只需更改UC矩形的宽度。因此,假设UC的宽度为50,您称为uc。Box1Width=100,UC的宽度仍然是50,所以它不会改变任何东西。