我試圖在Windows運行時中找到ClipToBounds的等效項。 如果它不存在有沒有辦法重新創建這種行爲?WinRT中的ClipToBounds屬性
5
A
回答
4
這裏是我使用的解決方案:
public class Clip
{
public static bool GetToBounds(DependencyObject depObj)
{
return (bool)depObj.GetValue(ToBoundsProperty);
}
public static void SetToBounds(DependencyObject depObj, bool clipToBounds)
{
depObj.SetValue(ToBoundsProperty, clipToBounds);
}
/// <summary>
/// Identifies the ToBounds Dependency Property.
/// <summary>
public static readonly DependencyProperty ToBoundsProperty =
DependencyProperty.RegisterAttached("ToBounds", typeof(bool),
typeof(Clip), new PropertyMetadata(false, OnToBoundsPropertyChanged));
private static void OnToBoundsPropertyChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
FrameworkElement fe = d as FrameworkElement;
if (fe != null)
{
ClipToBounds(fe);
// whenever the element which this property is attached to is loaded
// or re-sizes, we need to update its clipping geometry
fe.Loaded += new RoutedEventHandler(fe_Loaded);
fe.SizeChanged += new SizeChangedEventHandler(fe_SizeChanged);
}
}
/// <summary>
/// Creates a rectangular clipping geometry which matches the geometry of the
/// passed element
/// </summary>
private static void ClipToBounds(FrameworkElement fe)
{
if (GetToBounds(fe))
{
fe.Clip = new RectangleGeometry()
{
Rect = new Rect(0, 0, fe.ActualWidth, fe.ActualHeight)
};
}
else
{
fe.Clip = null;
}
}
static void fe_SizeChanged(object sender, SizeChangedEventArgs e)
{
ClipToBounds(sender as FrameworkElement);
}
static void fe_Loaded(object sender, RoutedEventArgs e)
{
ClipToBounds(sender as FrameworkElement);
}
}
發現here
1
我更喜歡這裏的 '夾' 屬性是一些XAML
<Grid Width="100" Height="50">
<Grid.Clip>
<RectangleGeometry Rect="0 0 100 50"/>
</Grid.Clip>
</Grid>
的 '矩形' 的參數屬性是:Rect =「xy寬度高度」
希望它有幫助
個問候
2
這在WinRTXamlToolkit(https://github.com/xyzzer/WinRTXamlToolkit)來實現,其也可作爲NuGet包。
添加到XAML頭:
xmlns:extensions="using:WinRTXamlToolkit.Controls.Extensions"
然後,例如在XAML Canvas組件
<Canvas extensions:FrameworkElementExtensions.ClipToBounds="True"/>
相關問題
- 1. UITableCell clipToBounds屬性奇怪的行爲
- 2. WinRT CheckBox屬性
- 3. WinRT中有'IsInDesignMode'屬性嗎?
- 4. WinRT中的UserControl的IsLoaded屬性
- 5. clipToBounds和masksToBounds性能問題
- 6. 靜態屬性/ ViewModel(C#,WinRT)
- 7. clipToBounds = NO
- 8. ClipToBounds和TranslateTransform
- 9. dequeueReusableCell休息cliptobounds
- 10. 如何獲取WinRT中的類的屬性
- 11. 在VisualStateManager(WinRT XAML)的ItemTemplate中更改控件的屬性
- 12. 在WinRT中,如何反映實現接口的屬性?
- 13. 更改GridView項目DataTemplate基於WinRT中獨立的ViewModel屬性
- 14. 本地化XAML/WinRT中的附加屬性
- 15. 網格忽略WPF中的ClipToBounds
- 16. 在WinRT中對依賴屬性進行分類
- 17. 如何在WinRT中將InputScope屬性添加到PasswordBox?
- 18. 在WinRT中綁定到一個靜態屬性
- 19. WinRT RichEditBox侷限性
- 20. Winrt - 單擊GridView中的項目時更改DataTemplate中的屬性的值
- 21. ListView.ItemContainerStyle IsSelected屬性似乎不會影響WinRT上的選擇
- 22. 你能用Caliburn.Micro(WinRT)綁定到ImageBrush的ImageSource屬性嗎?
- 23. 爲什麼我的屬性沒有被序列化,winrt c#xaml
- 24. 從另一個線程的ViewModel更新INotifyPropertyChanged屬性WinRT
- 25. clipToBounds問題:UIView對CALayer
- 26. WPF DropShadowEffect for Canvas和ClipToBounds
- 27. 綁定TreeView.SelectedItem到在WinRT中的應用程序的視圖模型屬性
- 28. 如何使用反射來獲取WinRT中的類的靜態屬性
- 29. 如果類型爲WinRT中的ImageSource,則會綁定到UserControl屬性的錯誤
- 30. WinRT中的WeekNumber