在xaml和c#中创建一个“公共”按钮

时间:2016-02-06 16:21:24

标签: c# wpf xaml xamarin

我正在使用Xamarin平台构建移动应用程序。在解决方案中,有core项目,然后是平台特定项目,在本例中为.ios.android。在我的核心项目中,我有一个XAML布局,带有一个按钮元素。 My_App.Core.HomePage.xaml

<Button x:Name="LoginIcon"
        Image="key.png"
        HorizontalOptions="Center"
        VerticalOptions="CenterAndExpand"
        Grid.Row="9" Grid.Column="3" Grid.ColumnSpan="3" />

我在那些项目中有一些特定于平台的逻辑,结果我想改变这些按钮的来源。 e.g。

My_App.ios.customfile.cs:

My_App.HomePage.LoginIcon.Source = ImageSource.FromFile("bluetoothg.png");

当然,由于按钮在XAML中定义,LoginIcon在此文件中不可见,如何创建此XAML元素public,因此我可以从其他项目中引用它引用核心文件的解决方案?

2 个答案:

答案 0 :(得分:2)

x:FieldModifier名称空间属性为命名XAML元素的生成字段指定访问级别。

答案 1 :(得分:1)

在页面上创建一个属性并返回按钮:

public Button PubLoginIcon{ get{ return LoginIcon; } }

但是,如果你必须访问另一个页面上的控件,我必须说错误地设计了一些东西,更好的方法是将页面中的功能作为公共函数,在这种情况下你不需要访问控件。