37 строки
1022 B
C#
37 строки
1022 B
C#
#if __MOBILE__
|
|
using UIKit;
|
|
namespace Xamarin.Forms.Platform.iOS
|
|
#else
|
|
using UIView = AppKit.NSView;
|
|
|
|
namespace Xamarin.Forms.Platform.MacOS
|
|
#endif
|
|
{
|
|
public class NativeViewWrapper : View
|
|
{
|
|
public NativeViewWrapper(UIView nativeView, GetDesiredSizeDelegate getDesiredSizeDelegate = null,
|
|
SizeThatFitsDelegate sizeThatFitsDelegate = null, LayoutSubviewsDelegate layoutSubViews = null)
|
|
{
|
|
GetDesiredSizeDelegate = getDesiredSizeDelegate;
|
|
SizeThatFitsDelegate = sizeThatFitsDelegate;
|
|
LayoutSubViews = layoutSubViews;
|
|
NativeView = nativeView;
|
|
|
|
nativeView.TransferbindablePropertiesToWrapper(this);
|
|
}
|
|
|
|
public GetDesiredSizeDelegate GetDesiredSizeDelegate { get; }
|
|
|
|
public LayoutSubviewsDelegate LayoutSubViews { get; set; }
|
|
|
|
public UIView NativeView { get; }
|
|
|
|
public SizeThatFitsDelegate SizeThatFitsDelegate { get; set; }
|
|
|
|
protected override void OnBindingContextChanged()
|
|
{
|
|
NativeView.SetBindingContext(BindingContext, nv => nv.Subviews);
|
|
base.OnBindingContextChanged();
|
|
}
|
|
}
|
|
} |