は一つの方法です。
public class HeightToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var gridHeight = System.Convert.ToDouble(value);
return gridHeight < 200 ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
そして、ここでは、XAMLである:まず、あなたがコンバータ必要なだけのテストのために
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="525"
Height="350"
mc:Ignorable="d">
<Grid Name="grid">
<Grid.Resources>
<local:HeightToVisibilityConverter x:Key="HeightToVisibilityConverter" />
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Row="0"
Content="Some Text" />
<Image Grid.Row="1"
Source="zeros.jpg"
Visibility="{Binding ElementName=grid,
Path=ActualHeight,
Converter={StaticResource HeightToVisibilityConverter}}" />
</Grid>
</Window>
を、私はグリッドの高さが200未満だった場合は、それを変更することができます非表示にするように設定しましたあなたの状況に合ったものにしてください。
はカスタムコンバータを使用して、グリッドの高さに可視性をバインドできません...私はこれが最善または唯一の解決策である言っていないんだけど、うまくいけば、それはあなたが始めるのだろうか? – sous2817
Googleカスタムコンバータを使用してお知らせします。コンバータの事@DanWheeler乾杯 – DanWheeler
は動作しますが、グリッドの 'ActualHeight'、ない' Height'に特異的に結合する必要があります。 'Height'は実行時に決して変化しません。 ActualHeightはそうです。 –