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:它是假的,我不會綁定回來。」任何想法是什麼? –