<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>
文件:usercontrol.xaml.cs
namespace ExampleWpf{
public partial class UserControlExample : UserControl
{
public UserControlExample()
{
InitializeComponent();
}
public double Box1Width
{
get { return (Box1.Width); }
set { Box1.Width = value; }
}
}
---&gt;这是一个简单的Wpfapplication代码 文件:Mainwindow.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;
}
}
我想在用户点击按钮时改变自定义控件的宽度----&gt;但不幸的是我没有成功 请帮帮我
答案 0 :(得分:2)
您正在创建用户控件的新实例,而不是使用它做任何事情。
您应该找到控件的现有实例并更新它。
您还应该通过Dependency Properites实现此类行为。这为您提供了本教程中概述的各种优点,但这里的主要优点是您可以在运行时设置这样的属性。
答案 1 :(得分:0)
使用您放置在xaml中的实例(通过Name-property实现),如下所示:
<uc:UserControlExample Name="myUC"/>
myUC.Box1Width = 100;
另一个问题可能是,您只需更改UC矩形的宽度即可。因此,假设UC的宽度为50,你调用uc.Box1Width = 100,UC的宽度仍为50,所以它不会改变任何东西。