我想把一个文件保存到设备上,问题是我在后面的代码中硬编码了文件名。
问题是我在后面的代码中硬编码了文件名。
我的要求是要求用户用用户定义的文件名保存文件。我如何通过在Xamarin.Forms中打开文件保存对话框来要求用户保存文件?
你解决了吗?能不能把你的解决方案贴出来,以防万一?这个问题可能符合你的要求,它使用了这个插件。Xam.plugin.filepicker Xam.Plugin.FilePicker工作正常,但无法获得文件。
下面是使用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);
你必须自己实现文件选取器,没有内置的方法可以做到这一点,如果你想要的是这个,最好去 GitHub 上看看。
在我听来,你可以通过弹出一个文本框,让用户输入一个文件名,用一个regex之类的东西验证文件名,然后用这个文件名保存文件就可以轻松实现你想要的东西,你甚至可以直接保存文件,然后给他们一个重命名的选项,把文件全部罗列出来,但这一切都太宽泛了,我无法给你一个准确的实现方法,所以我最能为你做的就是告诉你简单的方法来实现你想要做的事情。
选择文件后你只要用 "条目 "打开弹出窗口,用 "条目文本 "保存文件即可,你可以用"Rg.Plugins.Popup"