0

動的に作成する viewModel に MdiContainer があります。

    public MainWindowViewModel()
    {
         MdiContainer = new TabbedMdiContainer();
    }                                          
    public TabbedMdiContainer MdiContainer { get; private set; }

Xaml で、このコンテナーのコンテンツを mdihost に設定しました。

<docking:TabbedMdiHost x:Uid="ALTabbedMdiHost" Grid.Row="1" IsEnabled="True" Content="{Binding MdiContainer}" IsCloseButtonOnTab="False"/>

背景画像を使用して動的に新しいタブを作成する場合、その画像で mdiContainer の高さと幅を埋めたいと思います。この目的のために、画像の高さと幅のバインディングを作成しました。

 var height = new Binding("ActualHeight") { Source = MdiContainer, IsAsync = true};
 var width = new Binding("ActualWidth") { Source = MdiContainer ,IsAsync = true};
 _img.SetBinding(FrameworkElement.HeightProperty, height);
 _img.SetBinding(FrameworkElement.WidthProperty, width);

問題は、高さがヘッダーの高さで MdiContainer の高さを含み、ヘッダーの高さのないMdiContainer の高さが必要なことです。

だから私は別のクラスでコンバーターを作成しました:

public class ImageSizeConvertor : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return ((double) value - 1000);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

しかし、コンバーターをバインディング値に追加しようとすると:

 var height = new Binding("ActualHeight") { Source = MdiContainer, IsAsync = true, Converter = ImageSizeConvertor};

Class name is not valid at this point というエラーが表示されます。どうすれば解決できますか?

4

1 に答える 1

0

エラーを見つけました) var height = new Binding("ActualHeight") { Source = MdiContainer, IsAsync = true, Converter = new ImageSizeConvertor() };

于 2013-05-27T06:46:12.763 に答える