Xamarin Forms Xamarin Android
问题描述:
我试图将文件保存到设备。问题是我从代码隐藏硬编码文件名。Xamarin Forms Xamarin Android
我的要求是要求用户保存文件用户自定义名称的文件。我该如何让用户通过在Xamarin Forms中打开filesavedialog来保存文件?
答
你必须自己实现文件选择器,没有内置的方法来做到这一点,最好出去GitHub,并看看如果这就是你以后的事情。
这听起来像你可以很容易地实现你刚刚弹出一个文本框,让用户输入文件名,使用正则表达式或其他东西验证文件名,然后用该文件保存文件名字,你甚至可以保存文件,并给他们重新命名文件的选项,但是这对我来说太广泛了,无法给你一个确切的实现,所以我能为你做的最好的是告诉你简单的方法来做你想做的事情。
答
选择文件后,您只需使用“Entry”打开Popup并使用Entry Text保存文件。你可以使用“Rg.Plugins.Popup”
答
打开弹出窗口你已经解决了吗?你可以发布你的解决方案吗?
这个问题可能会满足您的需求,它使用这个插件:Xam.plugin.filepickerXam.Plugin.FilePicker Works fine but can't get file
下面是使用Rg.Plugins.Popup
CS最简单的弹出页面:
public partial class PromptPopup : PopupPage
{
public event EventHandler Oked;
public event EventHandler Canceled;
public PromptPopup(string title, string text)
{
InitializeComponent();
PopupText.Text = text;
PopupTitle.Text = title;
}
private void OnCancel(object sender, EventArgs e)
{
this.Canceled(sender, e);
PopupNavigation.PopAsync(false);
}
private void OnOk(object sender, EventArgs e)
{
this.Oked(sender, e);
PopupNavigation.PopAsync(false);
}
}
其XAML:
<StackLayout VerticalOptions="Center" HorizontalOptions="FillAndExpand" Padding="20, 20, 20, 20">
<StackLayout BackgroundColor="White" Padding="10, 10, 10, 10">
<Label x:Name="PopupTitle" Text="PromptPopupTitle" TextColor="Gray" FontSize="20" HorizontalOptions="Center" />
<ScrollView>
<StackLayout>
<StackLayout Orientation="Horizontal">
<Label x:Name="PopupText"
HorizontalOptions="FillAndExpand"
HorizontalTextAlignment="Center"
TextColor="Gray"></Label>
</StackLayout>
<StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand">
<Button Text="{i18n:Translate PopupButtonCancel}" Clicked="OnCancel" HorizontalOptions="FillAndExpand"></Button>
<Button Text="{i18n:Translate PopupButtonOk}" Clicked="OnOk" HorizontalOptions="FillAndExpand"></Button>
</StackLayout>
</StackLayout>
</ScrollView>
</StackLayout>
(此页来自一个PopupPage而不是ContentPage)
,你可以这样调用
var page = new PromptPopup("title", "text");
page.Oked += Page_OkedLogout;
page.Canceled += Page_CanceledLogout;
await PopupNavigation.PushAsync(page);
你有什么已经尝试过? – Mazz
实际上,我生成一个pdf和即时通信使用ISave接口与依赖项服务保存文件,但我的要求是用用户定义的文件名保存文件,就像它应该打开一个保存对话框并从设备访问文件夹。 – Rohan
https ://googleweblight.com/i?u = https://msdn.microsoft.com/en-us/library/windows/desktop/ms646960(v%3Dvs.85).aspx&grqid = _aSRcGLW&hl = zh-cn – Rohan