... Sen dönüştürücü içine Window.ActualHeight geçmesi gerekiyor
- o zaman ile çarpılır pencere yüksekliğini dönecektir 0.75. Hangi nedenle olursa olsun, dönüştürücü vurulduğunda, Window.ActualHeight boştur (veya kazayla çift olarak gönderilemeyen bir şeye geçtiyseniz), double.NaN değerini döndürür. Oto.
public class ControlHeightConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
double height = value as double;
if(value != null)
{
return value * 0.75;
}
else
{
return double.NaN;
}
}
}
Bind bu yüzden gibi sizin kontrolünüz ... (Açıkçası bu xaml çok cut-down versiyonu!)
<Window x:Name="MyWindow"
xmlns:converters="clr-namespace:NamespaceWhereConvertersAreHeld">
<Window.Resources>
<ResourceDictionary>
<converters:ControlHeightConverter x:Key="ControlHeightConverter"/>
</ResourceDictionary>
</Window.Resources>
<ListView MaxHeight="{Binding
ElementName=MyWindow, Path=ActualHeight,
Converter={StaticResource ControlHeightConverter}}"/>
</Window>
Ben bu yaklaşımı denedik ve iyi çalışıyor, ama pencereyi isabet doesnt dönüştürücü yeniden boyutlandırma, bu yüzden ne zaman MaxHeight buna göre değişir etmez. Bunu düzeltmek için bir fikrin var mı? – Muis