# Access Native Handle for particular control

**URL:** <https://forums.fusetools.com/t/access-native-handle-for-particular-control/2748>\
**Category:** How-to Discussions\
**Created:** [February 23, 2018, 3:02pm UTC](https://forums.fusetools.com/t/access-native-handle-for-particular-control/2748 "2018-02-23T15:02:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ahmed\_Diab](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/ahmed_diab/32/692_2.png) [@Ahmed\_Diab](https://forums.fusetools.com/u/Ahmed_Diab)\
**Post date:** [February 23, 2018, 3:02pm UTC](https://forums.fusetools.com/t/access-native-handle-for-particular-control/2748/1 "2018-02-23T15:02:34Z")

</div>

Hey guys,

how can i access the native `Handle` for particular UX component,  
i would like to access it and have some native code operations

e.g. Image in android i’d like to access the `android.widget.ImageView` of it

Best,  
Ahmad

---

<div class="post-metadata">

**Author:** ![Uldis](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/uldis/32/657_2.png) [@Uldis](https://forums.fusetools.com/u/Uldis)\
**Post date:** [February 26, 2018, 7:22am UTC](https://forums.fusetools.com/t/access-native-handle-for-particular-control/2748/2 "2018-02-26T07:22:13Z")

</div>

I recalled we had to fix an issue in `Fuse.Share` package recently, where on iPad it required a `Visual` to be passed in as a reference.

Perhaps looking at [the implementation](https://github.com/fusetools/fuselibs-public/blob/master/Source/Fuse.Share/ShareModule.uno#L107) will help you figure out how to access Elements.

---

<div class="post-metadata">

**Author:** ![Ahmed\_Diab](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/ahmed_diab/32/692_2.png) [@Ahmed\_Diab](https://forums.fusetools.com/u/Ahmed_Diab)\
**Post date:** [February 28, 2018, 8:44am UTC](https://forums.fusetools.com/t/access-native-handle-for-particular-control/2748/3 "2018-02-28T08:44:38Z")

</div>

Great idea, it works fine with me with the following Example

UX code

```auto
<JavaScript>
		var AccessUtility = require("AccessUtility");
		AccessUtility.accessElement(element);
</JavaScript>

	<DockPanel>
		<NativeViewHost>
			<Image ux:Name="element" Url="https://c1.staticflickr.com/4/3089/2573503275_a7c2e659f8_b.jpg" />
		</NativeViewHost>
	</DockPanel>

```

Uno Code

```auto
using Uno;
using Uno.Compiler.ExportTargetInterop;
using Android.Base.Wrappers;
using Fuse.Scripting;
using Fuse.Resources;
using Uno.Platform;
using Uno.Threading;
using Uno.UX;
using Fuse.Elements;

[UXGlobalModule]
public class AccessUtility : NativeModule
{
	static readonly AccessUtility _instance;
	public AccessUtility() : base()
	{
		if(_instance != null) return;
		Resource.SetGlobalKey(_instance = this, "AccessUtility");
		AddMember(new NativeFunction("accessElement", AccessElement));
	}

	object AccessElement(Context c, object[] args)
	{
		float2 position = float2(0);
		TryGetPosition(args[0], out position);
		return null;
	}

	bool TryGetPosition(object arg, out float2 position)
	{
		position = float2(0.0f);
		var obj = arg as Fuse.Scripting.Object;
		if (obj != null && obj.ContainsKey("external_object"))
		{
			var element = ((Fuse.Scripting.External)obj["external_object"]).Object as Fuse.Controls.Control;
			// TODO: continue handling the instance fo native view ;)
			if (element.NativeView != null)
				debug_log element.NativeView.ToString();
			//NativeView
			if (element != null)
			{
				var pos = element.ActualPosition;
				var size = element.ActualSize;
				position = pos + size * 0.5f;
				return true;
			}
		}
		return false;
	}

}

```
