Android上的Xamarin.Forms.单击选择器打开对话框,否定按钮的默认文本为"取消".我该怎么改变它?
我查看了Xamarin的开源项目,他们设置了这样的正面按钮文本
builder.SetNegativeButton(global::Android.Resource.String.Cancel, (s, a) => ...
Run Code Online (Sandbox Code Playgroud)
这个方法是私有的,所以我不能覆盖类方法.
我也不能复制此类的粘贴实现,因为它的成员是Xamarn dll-s的私有...
链接到Xamarin.Forms andoid上的选择器实现:
我不知道要搜索还是用Google搜索,所以我在这里问。我有一个固定大小的整数数组,并且完全符合此逻辑。
sample [1,2,4,8,16,32]
Run Code Online (Sandbox Code Playgroud)
现在给我一个数字,例如26。然后我将找到其总和将成为该数字的数字,在这种情况下为[2,8,16]
对于20的数字将是[4,16]
40是[8,32]
而对于63来说,所有这些数字[1,2,4,8,16,32]
正确的算法是什么?
我严格知道,此数字始终是先前值的两倍,这是连续存在的。以及仅来自给定数组的数字总和为给定数字,并且每个数字仅使用一次或不使用
如果将在C#方法中使用int数组和一个int值并返回包含int的int数组,则该int会从给定数组中对该数字求和。
谢谢
我通过名为Xamarin.GradleBinding的visual studio扩展创建了java绑定库.我添加了ru.rambler.android:swipe-layout:1.0.14包,并在使用它时SwipeLayout,一切正常.但不幸的是,它没有创建相应的C#类或类似的东西.我尝试手动添加包但仍然没有.
我检查了GitHub上的源代码.SwipeLayout有一个没有参数的public void方法reset():
public void reset()
Run Code Online (Sandbox Code Playgroud)
我尝试从c#中调用此方法JNIEnv.
IntPtr type = JNIEnv.FindClass("ru/rambler/libs/swipe_layout/SwipeLayout");
IntPtr method = JNIEnv.GetMethodID(type, "reset", "()V");
try
{
JNIEnv.CallObjectMethod(_swiper.Handle, method);
}
catch (Exception ex)
{
var s = ex.Message;
}
Run Code Online (Sandbox Code Playgroud)
已成功找到类型和方法,但正在调用
JNIEnv.CallObjectMethod(_swiper.Handle, method);
Run Code Online (Sandbox Code Playgroud)
这个方法崩溃了应用程序,它甚至没有进入catch块.
Tt必须是_swiper.Handle第一个参数的原因.
_swiper字段是类型,ViewGroup因为SwipeLayout派生自ViewGroup.我找不到如何获取视图的指针来传递该方法.
在调试时,当我调查时_swiper,它似乎是正确的实例SwipeLayout
我试图实现每列都有自己的边框的效果,但还找不到完美的工作解决方案。

这种外观是理想的,但这是通过在 3 列网格中放置 3 个边框来实现的,这并不灵活,因为网格列和 DataGrid 列的大小是分开调整的
<Window x:Class="WpfApp3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp3" xmlns:usercontrols="clr-namespace:EECC.UserControls"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid Background="LightGray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="White" CornerRadius="5" BorderThickness="1" BorderBrush="Black" Margin="5"/>
<Border Background="White" CornerRadius="5" BorderThickness="1" BorderBrush="Black" Margin="5" Grid.Column="1"/>
<Border Background="White" CornerRadius="5" BorderThickness="1" BorderBrush="Black" Margin="5" Grid.Column="2"/>
<DataGrid ItemsSource="{Binding Items}" ColumnWidth="*" AutoGenerateColumns="True" Padding="10" GridLinesVisibility="None" Background="Transparent" Grid.ColumnSpan="3">
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="Transparent"/>
</Style>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Background" Value="Transparent"/>
</Style>
</DataGrid.Resources>
</DataGrid>
</Grid>
Run Code Online (Sandbox Code Playgroud) 我有 gridView,它的项目非常简单,每个 gridViewItem 上都有按钮。在此按钮上单击我想显示一个与 gridViewItem 内容相同的浮出控件,但也显示更多数据。这一切都很简单,但我想将弹出窗口放置在 gridViewItem 上方,以使其显示的项目与 gridViewItem 项目的位置完全相同。
此技术用于 Windows 10 的应用商店应用程序。当看到用户对应用程序的评论时。单击“更多”会显示该弹出窗口。
<cv:BindableComboBox ItemsSource="{Binding Themes}" SelectedValue="{Binding SelectedTheme}">
<cv:BindableComboBox.Title>
<OnPlatform x:TypeArguments="x:String"
iOS="{Binding ThemePickerTitle}"
Android="{Binding ThemePickerTitle}"/>
</cv:BindableComboBox.Title>
</cv:BindableComboBox>
Run Code Online (Sandbox Code Playgroud)
所以我有选择器,我想将其Title绑定到ThemePickerTitle属性。如果我将其写为inline attrubute,则效果很好。但是我不想在Windows上有标题。因此,我编写OnPlatform使其仅在Ios和Droid上具有,但现在可以编译了。
我使用Git Bash作为bitbucket.我已经创建了一堆,我推了一些提交,其他人推动了master中的提交作为例外.现在我在不同的机器上.我想克隆或下载我的分支的最新提交的解决方案,而不是主人?我怎样才能做到这一点?
我想制作扩展标记以简化出价.我有字典,我将该属性绑定到视图中的Label.我有ValueConverter接受这个dictinary并且我传递了ConverterParameter,这是一个字符串,它找到了
<Label Text="{Binding Tanslations,Converter={StaticResource TranslationWithKeyConverter}, ConverterParameter='Test'}"/>
Run Code Online (Sandbox Code Playgroud)
但我必须为不同的标签做同样的事情,但关键(ConverterParameter)将是不同的,其余将保持不变
我想要一个markupextension,这将允许我写这个:
<Label Text="{local:MyMarkup Key=Test}"/>
Run Code Online (Sandbox Code Playgroud)
此标记应生成绑定到名为"Tanslations"的属性,其中valueconverter的TranslationWithKeyConverter和ConverterParameter的值为Key.
我试着这样做,但它不起作用:
public class WordByKey : IMarkupExtension
{
public string Key { get; set; }
public object ProvideValue(IServiceProvider serviceProvider)
{
return new Binding("Tanslations", BindingMode.OneWay, converter: new TranslationWithKeyConverter(), converterParameter: Key);
}
}
Run Code Online (Sandbox Code Playgroud)
标签上没有显示任何内容.
我有Xamarin.Forms项目.我在NavigationPage里面有MasterDetailPage.我设置了MasterDetailPage的图标属性,以便将图标设置为导航栏上的左上角位置.但它不起作用.
public partial class App : Application
{
public App()
{
InitializeComponent();
var masterDetailpage = new MasterDetailPage {
Icon = "menuIcon.png",
Master = new Page { Title = "Sample"},
Detail = new Page()
};
MainPage = new NavigationPage(masterDetailpage);
}
}
Run Code Online (Sandbox Code Playgroud)
这永远不会奏效.如果我将NavigationPage作为MasterDetailPage的Detail属性,并在Master上设置图标.有用.但是在NavigationPage中包含MasterDetailPage非常重要,反之亦然.
我使用 JsonNet 解析具有 DateTime 属性的 c# 对象,然后将其发布到服务器。但它返回日期格式错误。它要求采用这样的格式:
"/Date(1327572000000-1000)/"
Run Code Online (Sandbox Code Playgroud)
如何将 c# DateTime 转换为这种格式?
如何在控制器中生成所有图像并将其作为图像文件返回?例如,如果链接是:
www.test.com/generate?width=100&height=50&color=red
Run Code Online (Sandbox Code Playgroud)
这将生成100x50的红色图像并将其返回,如果我将此链接设置为前面的图像视图源,则应绘制该图像.它应该作为一种服务,与HTML或其他平台(如iOS UIImageView和Android ImageView)没有任何连接.
c# ×7
xamarin ×4
xaml ×3
.net-core ×1
algorithm ×1
android ×1
arrays ×1
asp.net ×1
asp.net-core ×1
binding ×1
bitbucket ×1
branch ×1
converter ×1
data-binding ×1
datagrid ×1
git ×1
git-bash ×1
git-clone ×1
gridview ×1
image ×1
ios ×1
java ×1
java-binding ×1
jnienv ×1
json ×1
json.net ×1
math ×1
picker ×1
popup ×1
uwp ×1
wcf ×1
wpf ×1
xamarin.ios ×1