コード例 #1
0
        private async void Markdown_LinkClicked(object sender, Microsoft.Toolkit.Uwp.UI.Controls.Quarrel.LinkClickedEventArgs e)
        {
            if (e.Link[0] == '@')
            {
                if (e.Link[1] == '&')
                {
                    string roleId = e.Link.Remove(0, 2);
                }
                else
                {
                    string userId;
                    if (e.Link[1] == '!')
                    {
                        userId = e.Link.Remove(0, 2);
                    }
                    else
                    {
                        userId = e.Link.Remove(0, 1);
                    }

                    var guildsService          = SimpleIoc.Default.GetInstance <IGuildsService>();
                    BindableGuildMember member = guildsService.GetGuildMember(userId, guildsService.CurrentGuild.Model.Id);
                    if (member != null)
                    {
                        Flyout flyout = new Flyout()
                        {
                            Content = new MemberFlyoutTemplate()
                            {
                                DataContext = member
                            },
                            FlyoutPresenterStyle = App.Current.Resources["GenericFlyoutStyle"] as Style,
                        };
                        flyout.ShowAt(sender as FrameworkElement);
                    }
                }
            }
            else if (e.Link[0] == '#')
            {
                string channelId = e.Link.Remove(0, 1);
                var    channel   = SimpleIoc.Default.GetInstance <IChannelsService>().GetChannel(channelId);
                if (channel != null)
                {
                    SimpleIoc.Default.GetInstance <MainViewModel>().CurrentChannel = channel;
                }
            }
            else
            {
                Uri uri;
                if (Uri.TryCreate(e.Link, UriKind.Absolute, out uri))
                {
                    await Launcher.LaunchUriAsync(uri);
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserProfilePageViewModel"/> class.
 /// </summary>
 /// <param name="user">The user to load.</param>
 public UserProfilePageViewModel(BindableGuildMember user)
 {
     User = user;
     LoadProfile();
 }
コード例 #3
0
ファイル: UserSuggestion.cs プロジェクト: rafal06/Quarrel
 /// <summary>
 /// Initializes a new instance of the <see cref="UserSuggestion"/> class.
 /// </summary>
 /// <param name="user">The user recommended for mentioning.</param>
 public UserSuggestion(BindableGuildMember user)
 {
     User = user;
 }