小编Den*_*öer的帖子

UWP不使用最佳缩放的Splash Screen

我的项目中有所有必要的比例:

缩放的飞溅屏幕

但是,当我启动我的应用程序时,似乎没有选择最佳缩放的启动画面.我将在Release x86中开始.它总是使用scale-100闪屏.

错误的启动画面

我使用SplashScreens的正确名称,它们位于我的项目中的"Assets"文件夹中:

资产的名称

我是否必须"激活"一个选项才能启用变量Splash Screens?或者为什么它总是选择一个太小的Splash Screen?

assets image splash-screen scale uwp

5
推荐指数
1
解决办法
1523
查看次数

ListView单元格翻译操作会影响其他单元格

我正在研究一种自定义功能SwipeListView,该功能允许向左或向右滑动单元格,目前仅适用于Android。这工作得很好,但是由于某些原因TranslationX,单元格的变化ContentView会影响的其他单元格ListView。每第8个单元格也会更改一次TranslationX(至少在视觉上):

刷虫

这是导致此行为的代码行:

mainContent.TranslationX = quota * Width + mainContentPositionX;
Run Code Online (Sandbox Code Playgroud)

我尝试了一些可能的解决方案,但没有一个起作用:

  • 每次尝试不同CachingStrategyListView(RetainElement,RecycleElement,RecycleElementAndDataTemplate)
  • 在MainThread上运行代码
  • 操作后TranslationX,遍历my中的所有其他单元格ListView并将其设置TranslationX为0

我确定问题在于单元正在被重用,这就是为什么要应用该TranslationX操作,但是如果是那样,那么我就感到困惑,为什么使用CachingStrategy=RetainElement不能解决问题。

我也将感谢能帮助调试此问题的想法。


编辑

SwipeListView为iOS 实现了该功能,并且可以正常使用。似乎是Android问题。


编辑-Github存储库

我添加了一个示例Github存储库:https : //github.com/Zure1/SwipeListView-Sample

编辑

现在,我可以确认这只是Android中的问题。iOS运行正常。

c# xamarin xamarin.forms

5
推荐指数
1
解决办法
190
查看次数

在 UWP 应用中使用 System.IO?

是否可以/允许System.IO在 UWP 应用中使用?我想知道我不应该使用它,因为在 UWP 中,文件存储为StorageFile.

现在我想提供在 UWP 中压缩文件的方法。我试过按照这个线程解决它要使用此解决方案,我需要使用System.IO. 我什至没有测试这个解决方案是否有效,因为我现在很困惑。我已经在 UWP 应用程序上工作了一个多月,我很确定我不应该System.IO在 UWP 应用程序中使用。

我在这里遗漏了一点吗?我们可以System.IO在 UWP 中使用吗?

c# reference system uwp

3
推荐指数
1
解决办法
1609
查看次数

如何在完成之前取消定时器

我正在开发一款聊天应用.在加载聊天消息并且消息可见5秒后,我想向服务器发送读取确认.这是我到目前为止所提出的:

public async void RefreshLocalData()
{
    // some async code to load the messages

    if (_selectedChat.countNewMessages > 0)
    {
        Device.StartTimer(TimeSpan.FromSeconds(5), SendReadConfirmation);
    }
}
Run Code Online (Sandbox Code Playgroud)

RefreshLocalData()被叫时,我知道用户选择了另一个聊天,或者当前聊天中有新消息.因此,当RefreshLocalData()被调用时,我必须取消当前的计时器以启动一个新计时器.

另一种情况,当我导航到另一个时,我必须取消计时器Page.这没有问题,因为ViewModel当发生这种情况时整个都被处理掉了.

使用上面的代码,如果RefreshLocalData()再次调用if 但是TimeSpan5秒的声明尚未结束,则该方法仍在执行.

有没有办法取消计时器(如果RefreshLocalData()再次调用)?

timer xamarin xamarin.forms

3
推荐指数
1
解决办法
3717
查看次数

资源字典Exception - Xamarin.Forms中找不到密钥

我正在创建一个Xamarin.Forms应用程序.我无法从代码背后设置样式.以下代码位于我的页面的构造函数中.

Style greenButton = new Style(typeof(Button))
{
    Setters =
    {
        new Setter{Property = Button.BackgroundColorProperty, Value = Color.Green },
        new Setter{Property = Button.TextColorProperty, Value = Color.Red}
    }
};

Resources = new ResourceDictionary();
Resources.Add(greenButton);

Button createSL = new Button();
createSL.Text = "Create Stack Layout";
createSL.Style = (Style) Resources["greenButton"];
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了此错误消息.

未找到密钥异常表示字典中不存在"greenButton".

但是我已经完成了Xamarin.Forms文档中提到的所有内容.请帮我解决一下!

c# resourcedictionary xamarin xamarin.forms

2
推荐指数
1
解决办法
403
查看次数

点击列表视图项目上的手势

我在点击列表视图中的项目后尝试打开另一个视图.我尝试过添加一个TapGestureRegonizer甚至添加ViewCell网格等等.这些似乎都不起作用.我已经为标签添加了一个轻击手势,这似乎有效,但同样不适用于列表视图项目.这似乎是列表视图之类的简单问题,但似乎没有内置的功能.

Xaml:

<ListView x:Name="dataList"
      ItemsSource="{Binding routeLabels}"
      HasUnevenRows="True"
      Grid.Row="1"
      Grid.Column="0"
      Grid.ColumnSpan="3">
</ListView>
Run Code Online (Sandbox Code Playgroud)

背后的代码:

var listviewgesture = new TapGestureRecognizer();
listviewgesture.SetBinding(TapGestureRecognizer.CommandProperty,"LoadRoutePage");
dataList.GestureRecognizers.Add(listviewgesture);
Run Code Online (Sandbox Code Playgroud)

视图模型:

public ICommand LoadRoutePage { get; protected set; }



public DriverDashboardViewModel(INavigation navigation,MessagDatabase database)
    {
        this._database = database;
        this.Navigation = navigation;
        this.LoadNotifications = new Command(async () => await OpenNotificationsPage());
        this.LoadRoutePage = new Command(async () => await OpenRoutePage());

    }

public async Task OpenRoutePage()
    {

        await Navigation.PushAsync(new RoutePageView());
    }
Run Code Online (Sandbox Code Playgroud)

要明确的是,该LoadNotifications方法确实可以打开页面,但却LoadRoutePage没有.所以我知道视图和视图模型之间存在某种程度的通信.

c# xaml xamarin xamarin.forms

0
推荐指数
1
解决办法
3921
查看次数