Я не знаю, как это сделать, и я считаю, что он не был предназначен для работы таким образом.
Вы можете изменить вам конвертер реализовать IMultiValueConverter и использовать свойство Window IsLoaded в качестве второго параметра, чтобы сделать это.
Создать DependencyProperty, WindowIsLoaded, например, тогда, на Loaded событие изменения значения для истинного.
На конвертер, когда WindowIsLoaded является приравнивает к ложной всегда возвращают Visibility.Visible.
ON КОД:
public bool WindowIsLoaded
{
get { return (bool)GetValue(WindowIsLoadedProperty); }
set { SetValue(WindowIsLoadedProperty, value); }
}
public static readonly DependencyProperty WindowIsLoadedProperty =
DependencyProperty.Register("WindowIsLoaded", typeof(bool), typeof(Window),
new PropertyMetadata(false));
private void Window_Loaded(object sender, RoutedEventArgs e)
{
WindowIsLoaded = true;
}
public class BooleanToVisibilityConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var isActivated = (bool)values[0];
var isLoaded = (bool)values[1];
if (!isLoaded)
return Visibility.Visible;
return isActivated ? Visibility.Visible : Visibility.Collapsed
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new Exception("Only oneway binding!");
}
}
XAML:
xmlns:local="clr-namespace:YourProjectNamespace.YourWindow"
<Canvas x:Name="groupControls">
<Canvas.Visibility>
<MultiBinding Converter="{StaticResource BooleanToVisibilityConverter}">
<Binding ElementName="MyControl" Path="IsActivated"/>
<Binding RelativeSource="{RelativeSource AncestorType={x:Type local:MainWindow},
Mode=FindAncestor}"
Path="WindowIsLoaded" />
</MultiBinding>
</Canvas.Visibility>
</Canvas>
Теперь конструктор будет Получать ложные из WindowIsLoaded и все ваши элементы управления будут видны на Режим дизайнера.