我在Package.appxmanifest中设置了各种Visual Assets,即
我没有为Wide 310x150徽标和徽章徽标定义任何图像.
安装在手机上时,当应用程序列在应用程序列表中并固定到开始屏幕时,它会按预期显示徽标.
安装在我的笔记本电脑上时,当应用程序固定到"开始"菜单时,它会按预期显示徽标.
然而,当我在桌面模式下在笔记本电脑上运行此应用程序时,它会在我的任务栏中显示带十字的默认方块(或使用alt-tab时).
我是否必须在其他地方设置图标,还是需要设置另一个未列出的可视资产?
谢谢.
更新:
请参阅下面的Bart的答案以获得解决方案,但我发现以下是一些有用的链接:
我的UWP应用程序未触发OnSuspending事件,但此问题仅发生在运行Windows 10的Windows Phone上.在我的本地计算机或模拟器上将其作为Windows应用商店应用程序运行时,它可以正常工作.
我正在使用此事件在应用程序关闭时保存我的应用程序设置,但这显然会导致Windows手机出现重大问题,因为此事件未触发.
如您所见,OnSuspending事件在应用程序启动时初始化
public App()
{
Microsoft.ApplicationInsights.WindowsAppInitializer.InitializeAsync(
Microsoft.ApplicationInsights.WindowsCollectors.Metadata |
Microsoft.ApplicationInsights.WindowsCollectors.Session);
this.InitializeComponent();
this.Suspending += OnSuspending;
}
Run Code Online (Sandbox Code Playgroud)
下面是应该调用的OnSuspending代码,但在Windows Phone 10中运行时则不行.
private async void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
await Locator.MainPageViewModel.SaveSettings();
deferral.Complete();
}
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法,还是有潜在的解决方法?
谢谢.
更新1:
当我通过按住标志键并单击十字架以终止它来终止我的应用程序时,关闭应用程序但它仍然不会触发OnSuspending事件,但.net IDE仍然运行.当我按F5再次运行应用程序时,它会触发OnSuspending事件.我的应用程序启动但代码停止在IDE中运行.
我正在BlockingCollection努力尝试更好地理解它们,但是我在努力理解为什么当我使用Parallel.For
我只是在上面加上一个数字(生产者?):
var blockingCollection = new BlockingCollection<long>();
Task.Factory.StartNew(() =>
{
while (count <= 10000)
{
blockingCollection.Add(count);
count++;
}
});
Run Code Online (Sandbox Code Playgroud)
然后,我正在尝试处理(消费者?):
Parallel.For(0, 5, x =>
{
foreach (long value in blockingCollection.GetConsumingEnumerable())
{
total[x] += 1;
Console.WriteLine("Worker {0}: {1}", x, value);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当完成所有数字的处理后,它就挂在那里了吗?我究竟做错了什么?
另外,当我将Parallel.For设置为5时,是否表示它正在5个单独的线程上处理数据?
c# parallel-processing multithreading task-parallel-library parallel.for
我通常ShouldSerialize用来排除没有数据的属性,例如数组,但现在,当我只在.NET Core 3. 它在使用时被触发,NewtonSoft但我已将它从我的项目中删除,因为它似乎不再需要。
例如:
private ICollection<UserDto> _users;
public ICollection<UserDto> Users
{
get => this._users ?? (this._users = new HashSet<UserDto>());
set => this._users = value;
}
public bool ShouldSerializeUsers()
{
return this._users?.Count > 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么没有触发 ShouldSerializeUsers 的任何想法?
我已经看到其他可以使用的答案:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddJsonOptions(options => {
options.SerializerSettings.NullValueHandling =
NullValueHandling.Ignore;
});
}
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有另一种方法来处理这个问题,因为我没有使用 .AddMvc
谢谢。
我有一个列表,其中myclass定义了一些属性
List<MyClass> myClassList = new List<MyClass>();
myClassList.Add(new MyClass() { Id = 1, Name = "My first test", Key = "First" });
myClassList.Add(new MyClass() { Id = 2, Name = "My second test", Key = "Second" });
Run Code Online (Sandbox Code Playgroud)
然后我有一个路径,即c:\ my folders\company name\My First Test,我使用regex闯入字符串数组,即myArrayPath
我想找到myClassList的任何基于给定属性的元素,即Name,可以在myArrayPath的任何元素中找到,理想情况下我想返回Key但是如果我返回匹配myArrayPath中的一个元素的对象,这也一样好.
有没有办法使用linq和/或lambda表达式来实现这一点.
谢谢.
我有一个字典定义如下:Dictionary<string, List<int>>我想过滤,以便它只会在其中List<Int>有超过1个值的条目.
下面的代码正确构建我的字典(感谢Andrew Whitaker)
Dictionary<string, List<int>> fieldNameList =
Mapping.Select(m => m.FieldName)
.Select((c, i) => new { Value = c, Index = i })
.GroupBy(o => o.Value, o => o.Index)
.ToDictionary(grp => grp.Key, grp => grp.ToList());
Run Code Online (Sandbox Code Playgroud)
但现在我需要对其进行过滤,以便只有包含多个项目的列表才会包含在最终字典中.
您是否介意解释额外的过滤器,因为我想了解我做错了什么.
我添加.Where(m => m.Value.Count > 1)了现有的查询,认为这可以做到这一点,但它给出了"隐式转换"错误.
我有一个ObservableCollection,它包含ViewModel,它反过来定义我的按钮定义.
我已经看了好几个小时,在文章之后阅读文章但无济于事.我尝试过使用Listbox,这是我最接近的.我的按钮正在水平构建,但假设我显示3个按钮,我想要一个显示在左边,一个显示在中间,一个显示在右边.
<ListBox Grid.Row="2" ItemsSource="{Binding Links}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<StackPanel Background="Beige" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Button Grid.Column="{Binding Column}"
Grid.Row="0"
Width="90"
Height="90">
<ContentControl>
<StackPanel Orientation="Vertical">
<Image Source="{Binding Image}" Width="36" Height="36"
Margin="5" Stretch="UniformToFill"
HorizontalAlignment="Center"/>
<TextBlock Text="{Binding Description}"
Foreground="#0F558E"
FontSize="18"
HorizontalAlignment="Center"/>
</StackPanel>
</ContentControl>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我使用ViewModel中的属性动态设置列,但我不再有网格,因为我无法使其工作,但理想情况下我想使用网格以便我可以指定列设置按钮.
当我使用StackPanel时,它可以正常工作,但按钮彼此相邻,而不是在屏幕的整个宽度上均匀分割.
我已经做了类似于上面使用ItemsControl和使用网格的东西,我可以看到每个按钮都被添加但是它们在第0行,第0行中相互重叠.如果我将行绑定到Column属性以进行测试,则构建它它正确但我的按钮显示在不同的行上,这不是我想要的.我希望每个按钮水平对齐.
我怎样才能做到这一点?我知道我可以硬编码3个按钮,只需改变他们的图标和文本,并通过将相关按钮作为绑定参数来处理相关代码,但理想情况下我想在网格中动态构建按钮并使用列定位它们.
请注意,列的数量将是固定的,即3,因为我永远不会超过这个数量.
谢谢.
我的客户目前正在使用Google Cloud Messaging (GCM).
我已经对此进行了一段时间的研究,但我似乎只找到了有关如何GCM使用 Android 设备发送推送通知的示例,C#但我找不到有关receiving/capturing从 GCM 发送到 UWP Windows 10 应用程序的推送通知的任何信息?
这是可能的吗?
可以不用使用Azure吗?我刚刚检查过,我可以看到您可以GCM在通知中心中进行设置,Azure但我的客户根本不想使用Azure并且坚持使用GCM
c# push-notification google-cloud-messaging win-universal-app uwp
我正在尝试react-toastify在学习在线课程时使用我正在编写的应用程序。我应该安装一个特定的版本,但我总是更喜欢使用最新的版本,但是当我这样做时,我收到了一堆错误。
我去npm了React-Toastify 的主页,他们提供了关于如何使用它的非常好的文档,我相信我已经按照课程和react-toastify正确,但我仍然得到一个错误。
我已经定义react-toastify为我的 App.js 的顶部
import { ToastContainer, toast } from "react-toastify";
import "react-toastify/dist/ReactToastify.css";
Run Code Online (Sandbox Code Playgroud)
我只是按如下方式调用测试吐司:
handleDelete = (post) => {
toast("deleted");
// toast.error("deleted");
}
Run Code Online (Sandbox Code Playgroud)
在我的渲染方法中,我有<ToastContainer />:
render() {
return (
<React.Fragment>
<ToastContainer />
<button className="btn btn-error" onClick={this.handleDelete}>
Delete
</button>
Run Code Online (Sandbox Code Playgroud)
当我点击我的删除按钮时,我收到一个错误(好吧,我实际上得到了一堆,但这是主要的):
TypeError: Object(...) is not a function
useToastContainer
..myapp/node_modules/react-toastify/dist/react-toastify.esm.js:866
863 | }
864 |
865 | function useToastContainer(props) {
> 866 | var _useReducer = useReducer(function (x) { …Run Code Online (Sandbox Code Playgroud) 我们将在我们的网络应用程序中为我们的客户提供一个管理部分,在那里他们将被允许设置各种与管理相关的设置,我们希望在管理模块中提供的部分之一是一个前端,它将允许管理员用户添加/更新/删除 webjobs(仅限预定义)并安排它们在给定范围内每 x 分钟运行一次,例如工作周。
我们将只提供有限的 webjobs 列表给我们的客户,但我们真的不想硬编码调度或必须为他们设置它,所以我们真的需要通过管理模块允许他们这样做.
我不介意使用 REST API,虽然似乎对Create Job (Scheduler API)所需的每个请求/响应都有明确的解释,但理想情况下,我更喜欢使用 SDK,我会继续研究它,看看我是否能找到一些东西,但正如我所说,我似乎无法从头到尾找到一个例子。
如果有人能指出我正确的方向并通过样本向我提供我需要的信息或为我提供一两个相关文章的链接,我将不胜感激。
谢谢。