4
有谁知道如何将默认缩放级别设置为包含在wpfextensions中的ZoomControl中的1:1?当项目首次启动时,默认行为是缩放以填充。如何设置WPFExtensions.ZoomControl默认缩放
我曾经尝试都
<zoom:ZoomControl Mode="Original">
和
<zoom:ZoomControl Zoom="1">
既没有工作......
有谁知道如何将默认缩放级别设置为包含在wpfextensions中的ZoomControl中的1:1?当项目首次启动时,默认行为是缩放以填充。如何设置WPFExtensions.ZoomControl默认缩放
我曾经尝试都
<zoom:ZoomControl Mode="Original">
和
<zoom:ZoomControl Zoom="1">
既没有工作......
看起来你必须将模式属性设置为Original
,或者你可以在ZoomControl的Loaded事件处理程序中明确调用ZoomToOriginal
。
看来EqualityToBooleanConverter会抛出一个异常,当它不应该的时候。代码如下:
public class EqualityToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return object.Equals(value, parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((bool)value)
return parameter;
//it's false, so don't bind it back
throw new Exception("EqualityToBooleanConverter: It's false, I won't bind back.");
}
}
您需要删除该异常并返回Binding.DoNothing,来代替。
那转换器在zoomControl可控制模板使用,就像这样:
<RadioButton Content="1:1"
GroupName="rbgZoomMode"
IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Mode,Converter={StaticResource equalityConverter},ConverterParameter={x:Static Controls:ZoomControlModes.Original}}" />
<RadioButton Content="Fill"
GroupName="rbgZoomMode"
IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Mode,Converter={StaticResource equalityConverter},ConverterParameter={x:Static Controls:ZoomControlModes.Fill}}" />
那么有效,它试图只有当值为true绑定回源。但是它会引发一个异常,就像你所看到的那样。
试过了。也许它不工作,因为ZoomControl的内容正在改变? –
@Brian - 它看起来像在OnApplyTemplate中调用ZoomToFill,因此您需要在Loaded事件处理函数中调用ZoomToOriginal。 – CodeNaked
我为ZoomControl的Loaded事件添加了一个事件处理程序,并在处理程序中调用了ZoomToOriginal。然而,它会抛出一个异常消息“EqualityToBooleanConverter:它是假的,我不会绑定回来。”任何想法是什么? –