C#XAML使用转换器设置高度

C#XAML使用转换器设置高度,c#,wpf,xaml,height,converter,C#,Wpf,Xaml,Height,Converter,我创建了一个名为AspectRatioConverter的转换器,我想用它来设置MediaElement的高度,但该转换器在程序开始时只调用一次,在程序运行期间不再调用 Height="{Binding ElementName=MediaElement, Path=ActualWidth, Converter={StaticResource AspectRatioConverter}}" MediaElement的高度必须更改,因为我在其中加载了不同高度的不

我创建了一个名为AspectRatioConverter的转换器,我想用它来设置MediaElement的高度,但该转换器在程序开始时只调用一次,在程序运行期间不再调用

Height="{Binding ElementName=MediaElement, Path=ActualWidth, 
                 Converter={StaticResource AspectRatioConverter}}"
MediaElement的高度必须更改,因为我在其中加载了不同高度的不同视频(转换器会根据视频的自然高度和宽度以及使用页面宽度计算的MediaElement的宽度来查找MediaElement的最佳高度)。 那么,我该怎么做呢?我该如何在程序中修改控件的高度(使用转换器)

问题已解决

Height="{Binding ElementName=MediaElement, Path=CurrentState, Converter={StaticResource AspectRatioConverter}}"

每次刷新绑定时都应调用转换器。每当
ActualWidth
更改值时都会发生这种情况。您是否验证过这种情况?也许您可以发布更多XAML?但是,如果只有高度在更改,那么您需要调整绑定,以便它能够根据更改的内容进行更新实际上正在更改值。为什么不能使用来保持纵横比?
加载新视频时,实际宽度不必更改。如果控件延伸到整个宽度,则显示视频的区域将更改,控件大小将保持不变,您可以解决问题!@提问者您使用了什么属性?