我在我的应用中使用DatePicker
Xamarin.Forms
控件。我有一个按钮,我想打开一个弹出窗口,我想在其中显示DatePicker
的日历。但是,当我打开弹出窗口时,edittexbox
显示当前日期,当我点击文本框时,日历会打开。但我不想要编辑texbox。我只想在用户点击按钮时显示日历
有谁知道我怎么能这样做?
答案 0 :(得分:4)
通过设置IsVisible=false
隐藏DatePicker控件。然后,您可以通过从代码中的其他位置调用Focus()
方法以编程方式触发它。
答案 1 :(得分:1)
检查一下:
DatePicker datePicker = new DatePicker
{
Format = "D",
VerticalOptions = LayoutOptions.CenterAndExpand,
IsVisible =false,
IsEnabled = false
};
Button button = new Button
{
Text = "Date",
VerticalOptions = LayoutOptions.CenterAndExpand
};
button.Clicked += (object sender, EventArgs e) =>
{
IsEnabled = true;
datePicker.Focus();
button.Text = datePicker.Date.ToString();
};
参考: https://developer.xamarin.com/api/type/Xamarin.Forms.DatePicker/
答案 2 :(得分:1)
对杰森的回答略有改进。将DatePicker上的public static String S3putFile(File file, String bucketName, String key, CannedAccessControlList accessControlList) throws IOException {
if(file == null) {
throw new NullPointerException("file must not be null");
} else if(bucketName == null || key == null) {
throw new NullPointerException("Object parameters (bucketName / key) must not be null");
} else {
PutObjectRequest putObjectRequest = new PutObjectRequest(s3Bucket, key, file);
//putObjectRequest.withCannedAcl(accessControlList.AuthenticatedRead);
putObjectRequest.withCannedAcl(accessControlList);
amazonS3.putObject(putObjectRequest);
return key;
}
}
设置为false然后将其设置为IsVisible
确实有效,但是,您可能会发现当您单击取消时,焦点仍然在DatePicker上。如果DatePicker已经具有焦点,则不会再次显示日期选择器对话框。无论用户如何与对话框交互,以下代码始终有效:
Focus()