C# 在WPF MVVM中,如何在运行时根据文本框值调整图像大小?

C# 在WPF MVVM中,如何在运行时根据文本框值调整图像大小?,c#,wpf,mvvm,C#,Wpf,Mvvm,这里我有两个文本框名称LabelHeight和LabelWidth以及一个图像。我从LabelHeight和LabelWidth的默认值加载图像。现在我想在运行时更改这些文本框值时更改图像的高度和宽度。我是WPF的新手。 这是我的MainViewModel类,我在其中声明了两个具有值的属性 public int LabelWidth { get; set; } = 305; public int LabelHeight { get; set; } = 200; 这是我的xml <

这里我有两个文本框名称LabelHeight和LabelWidth以及一个图像。我从LabelHeight和LabelWidth的默认值加载图像。现在我想在运行时更改这些文本框值时更改图像的高度和宽度。我是WPF的新手。 这是我的MainViewModel类,我在其中声明了两个具有值的属性

 public int LabelWidth { get; set; } = 305;
    public int LabelHeight { get; set; } = 200;
这是我的xml

<Image x:Name="Image" 
           Grid.Column="2" Grid.Row="1"
               Source="Images/Norsel.bmp" 
               Height="{Binding LabelHeight}"  
               Width="{Binding LabelWidth}"
           VerticalAlignment="Top"/>
<TextBox  Grid.Column="1" Grid.Row="0" Margin="5" Text="{Binding LabelWidth, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
<TextBox  Grid.Row="1" Grid.Column="1" Margin="5" Text="{Binding LabelHeight, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>

您需要提升高度和宽度上的
INotifyPropertyChanged

假设已在viewmodel上正确设置了
InotifyProperthChanged
,宽度如下所示

private int _labelWidth = 305;
public int LabelWidth 
{ 
     get { return _labelWidth; }  
     set 
     { 
         _labelWidth = value;
         NotifyPropertyChanged("LabelWidth");
     }
}

您需要提升高度和宽度上的INotifyPropertyChanged

假设已在viewmodel上正确设置了
InotifyProperthChanged
,宽度如下所示

private int _labelWidth = 305;
public int LabelWidth 
{ 
     get { return _labelWidth; }  
     set 
     { 
         _labelWidth = value;
         NotifyPropertyChanged("LabelWidth");
     }
}

@Stefan Yea编辑了我的代码。我正在使用mvvm。任何suggestion@Stefan是的,我编辑了我的代码。我正在使用mvvm。任何建议,那么notifyproperty更改的xaml是什么。你能给我举个例子吗?我已经应用了这一点,但你能给文本框和图像举个例子吗?只要在图像高度和宽度上采用双向绑定模式,就可以解决你的问题。它会改变大小,但我认为这取决于彼此的高度和宽度。例如,如果我在高度中给定一个值,并将宽度设为0,那么在给定宽度值后,它不会显示任何图像,因为它会发生变化。确保高度和宽度有一个最小值,以防止发生这种情况,您可以通过许多方法来实现,所有这些都非常简单。如果这回答了您的问题,也许可以接受它。不用担心,玩得开心。那么属性更改的xaml是什么呢。你能给我举个例子吗?我已经应用了这一点,但你能给文本框和图像举个例子吗?只要在图像高度和宽度上采用双向绑定模式,就可以解决你的问题。它会改变大小,但我认为这取决于彼此的高度和宽度。例如,如果我在高度中给定一个值,并将宽度设为0,那么在给定宽度值后,它不会显示任何图像,因为它会发生变化。确保高度和宽度有一个最小值,以防止发生这种情况,您可以通过许多方法来实现,所有这些都非常简单。如果这回答了您的问题,也许可以接受它。别担心,玩得开心。