/*************************************************************************************************************** * Appends the specified message to the TextBlock. * * @param msg The message to append. ***************************************************************************************************************/ private void AppendTextField(string msg) { MainTextBlock.Text += msg; MainTextBlock.Text += "\n"; MainScroller.ScrollToEnd(); }
private async void MainPanel_SizeChanged(object sender, EventArgs e) { // Supports only Android await MainScroller.ScrollToAsync(0, MainPanel.Height, true); // Supports only IOS //await MainScroller.ScrollToAsync(0, MainScroller.Content.Height, true); }
private void SendMessage(string message) { if (currentChannel != null && !string.IsNullOrEmpty(message)) { currentChannel.SendMessage(message); MainScroller.ScrollToBottom(); } }
private void SendMessage_Click(object sender, EventArgs e) { messages.Add(new Message { Content = ComposeMessage.Text }); ComposeMessage.Text = String.Empty; MainScroller.UpdateLayout(); MainScroller.ScrollToVerticalOffset(MainScroller.ScrollableHeight); }
private void AppendMessage(DiscordMessage m) { if (messagesList.Items.Count > 0) { var previousStub = (messagesList.Items[messagesList.Items.Count - 1] as MessageStub); if ((previousStub.Message.timestamp - m.timestamp) < TimeSpan.FromMinutes(2)) { if (m.Author == (messagesList.Items[messagesList.Items.Count - 1] as MessageStub).Message.Author) { (messagesList.Items[messagesList.Items.Count - 1] as MessageStub).AppendMessage(m); } else { MessageStub stub = new MessageStub(m, mainClientReference); if (stub.Message.Author != null) { if (App.ClientConfiguration.Settings.IgnoredUserIDs.Contains(stub.Message.Author.ID)) { stub.SetMessageText("<Ignored Message>"); } } stub.IgnoredUserAdded += IgnoreUserUpdate; messagesList.Items.Add(stub); MainScroller.ScrollToBottom(); } } else { MessageStub stub = new MessageStub(m, mainClientReference); if (stub.Message.Author != null) { if (App.ClientConfiguration.Settings.IgnoredUserIDs.Contains(stub.Message.Author.ID)) { stub.SetMessageText("<Ignored Message>"); } } stub.IgnoredUserAdded += IgnoreUserUpdate; messagesList.Items.Add(stub); MainScroller.ScrollToBottom(); } } else { MessageStub stub = new MessageStub(m, mainClientReference); if (stub.Message.Author != null) { if (App.ClientConfiguration.Settings.IgnoredUserIDs.Contains(stub.Message.Author.ID)) { stub.SetMessageText("<Ignored Message>"); } } stub.IgnoredUserAdded += IgnoreUserUpdate; messagesList.Items.Add(stub); MainScroller.ScrollToBottom(); } }
private void ComposeMessage_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key == Key.Enter) { messages.Add(new Message { Content = ComposeMessage.Text }); ComposeMessage.Text = String.Empty; MainScroller.UpdateLayout(); MainScroller.ScrollToVerticalOffset(MainScroller.ScrollableHeight); } }
public void LoadChannel(DiscordChannel channel) { messagesList.Items.Clear(); foreach (var m in messageHistoryCache) { if (m.Channel() == channel) { AppendMessage(m); Title = $"Dissonance - {Server.Name} - #{channel.Name}"; } } MainScroller.ScrollToBottom(); }
private void ResizeToSmall() { BottomContents.SetValue(Grid.ColumnSpanProperty, 2); Split.SetValue(Grid.ColumnSpanProperty, 2); MainScroller.SetValue(Grid.ColumnSpanProperty, 2); // メインスクロールVのRowスパンを3に指定 MainScroller.SetValue(Grid.RowSpanProperty, 3); Main1Grid.SetValue(Grid.ColumnSpanProperty, 2); Main2Grid.SetValue(Grid.ColumnSpanProperty, 2); Main3Grid.SetValue(Grid.ColumnProperty, 1); Main3Grid.SetValue(Grid.RowProperty, 0); Main3Grid.SetValue(Grid.ColumnSpanProperty, 1); Middle.SetValue(Grid.ColumnSpanProperty, 1); // ボトムを消す BottomContents.Visibility = Visibility.Visible; Split.Visibility = Visibility.Visible; Transaction.Visibility = Visibility.Collapsed; Transaction.SetValue(Grid.ColumnProperty, 0); Transaction.SetValue(Grid.RowProperty, 1); Depth.Visibility = Visibility.Collapsed; // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。 MainContentsGrid.Height = 420;//1036; // メイン1の高さを指定 *重要 Main1Grid.Height = 420; Main2Grid.Height = 420; Main3Grid.Height = 420; Middle.Width = 357;//357 Middle.Height = 416; Middle.Margin = new Thickness(3, 1, 3, 0); Main2Colum.Width = new GridLength(360, GridUnitType.Pixel); Main3Colum.Width = new GridLength(0, GridUnitType.Pixel); BottomContents.Margin = new Thickness(3, 0, 3, 0); //Transaction.Margin = new Thickness(0, 0, 10, 3); ChartSpanOneYearRadioButton.Visibility = Visibility.Collapsed; ChartSpanOneWeekRadioButton.Visibility = Visibility.Collapsed; ChartSpanThreeHourRadioButton.Visibility = Visibility.Collapsed; }
private void OnVerticalOffsetChanged(DependencyPropertyChangedEventArgs e) { MainScroller.ScrollToVerticalOffset((double)e.NewValue); }
private void ResizeToXXXLarge() { BottomContents.SetValue(Grid.ColumnSpanProperty, 4); Split.SetValue(Grid.ColumnSpanProperty, 4); Split.Visibility = Visibility.Visible; BottomContents.Visibility = Visibility.Visible; MainScroller.SetValue(Grid.ColumnSpanProperty, 4); // メインスクロールVのRowスパンを1に指定 MainScroller.SetValue(Grid.RowSpanProperty, 1); Main1Grid.SetValue(Grid.ColumnSpanProperty, 3); Main2Grid.SetValue(Grid.ColumnSpanProperty, 1); Main3Grid.SetValue(Grid.ColumnProperty, 1); Main3Grid.SetValue(Grid.RowProperty, 0); Main3Grid.SetValue(Grid.ColumnSpanProperty, 2); // 歩み値を Transaction.Visibility = Visibility.Visible; Transaction.SetValue(Grid.ColumnProperty, 3); Transaction.SetValue(Grid.RowProperty, 0); Middle.SetValue(Grid.ColumnSpanProperty, 2); // ボトムを表示 BottomContents.Visibility = Visibility.Visible; Split.Visibility = Visibility.Visible; Transaction.Visibility = Visibility.Visible; Depth.Visibility = Visibility.Visible; // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。 MainContentsGrid.Height = 420;//1036; // メイン1の高さを指定 *重要 Main1Grid.Height = 420; Main2Grid.Height = 420; Main3Grid.Height = 420; Middle.Width = 743; Middle.Height = 416; Middle.Margin = new Thickness(3, 1, 0, 3); Main3Grid.Width = 760;//760 Transaction.Height = 416; Transaction.Width = 210; Transaction.Margin = new Thickness(3, 1, 0, 3); Main2Colum.Width = new GridLength(380, GridUnitType.Pixel); Main3Colum.Width = new GridLength(380, GridUnitType.Pixel); BottomContents.Margin = new Thickness(3, 0, 3, 0); RightSide1Colum.Width = new GridLength(213, GridUnitType.Pixel); RightSide2Colum.Width = new GridLength(229, GridUnitType.Pixel); ChartSpanOneYearRadioButton.Visibility = Visibility.Visible; ChartSpanOneWeekRadioButton.Visibility = Visibility.Visible; ChartSpanThreeHourRadioButton.Visibility = Visibility.Visible; }
private void ResizeToLarge() { // ボトムを BottomContents.Visibility = Visibility.Visible; // ボトムのコラムスパンを指定 BottomContents.SetValue(Grid.ColumnSpanProperty, 4); // スプリッタを Split.Visibility = Visibility.Visible; // スプリッタのコラムスパンを指定 Split.SetValue(Grid.ColumnSpanProperty, 4); // 歩み値を Transaction.Visibility = Visibility.Visible; Transaction.SetValue(Grid.ColumnProperty, 3); Transaction.SetValue(Grid.RowProperty, 0); // メインスクロールVのコラムスパンを1に指定 MainScroller.SetValue(Grid.ColumnSpanProperty, 4); // メインスクロールVのRowスパンを3に指定 MainScroller.SetValue(Grid.RowSpanProperty, 1); // メインコンテンツグリッドのコラムスパンを1に指定 MainContentsGrid.SetValue(Grid.ColumnSpanProperty, 1); // メインコンテンツグリッドの高さを指定。 //MainContentsGrid.Height = 518; // メイン1コラムのコラムスパンを1に指定 Main1Grid.SetValue(Grid.ColumnSpanProperty, 3); // メイン2コラムのコラムスパンを1に指定 Main2Grid.SetValue(Grid.ColumnSpanProperty, 1); Main2Grid.SetValue(Grid.RowProperty, 0); Main2Grid.SetValue(Grid.ColumnProperty, 0); // メイン3コラムのコラムスパンを2に指定 Main3Grid.SetValue(Grid.ColumnSpanProperty, 2); // メイン3コラムのRowを0に指定 Main3Grid.SetValue(Grid.RowProperty, 0); // メイン3コラムを1に指定 Main3Grid.SetValue(Grid.ColumnProperty, 1); Middle.SetValue(Grid.ColumnSpanProperty, 2); //Depth.Visibility = Visibility.Collapsed; Depth.Visibility = Visibility.Visible; // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。 MainContentsGrid.Height = 420;//1036; // メイン1の高さを指定 *重要 Main1Grid.Height = 420; Main2Grid.Height = 420; Main3Grid.Height = 420; //Middle.Width = 740; //740 //Middle.Width = 743; //Middle.Width = this.ActualWidth - 665; Middle.Width = 543; Middle.Height = 416; Middle.Margin = new Thickness(3, 1, 0, 3); //Main3Grid.Width = 757;//757 Main3Grid.Width = 560;//760 //Main3Grid.Width = this.ActualWidth - 648; //Main3Grid.Width = this.ActualWidth - 648; Transaction.Height = 416; //Transaction.Width = 213; Transaction.Width = 210; //Transaction.Margin = new Thickness(3, 1, 3, 3); Transaction.Margin = new Thickness(3, 1, 0, 3); //Main2Colum.Width = new GridLength(380, GridUnitType.Pixel);//380 //Main3Colum.Width = new GridLength(380, GridUnitType.Pixel);//380 Main2Colum.Width = new GridLength(280, GridUnitType.Pixel); //380 Main3Colum.Width = new GridLength(280, GridUnitType.Pixel); //380 BottomContents.Margin = new Thickness(3, 0, 3, 0); RightSide1Colum.Width = new GridLength(213, GridUnitType.Pixel); //RightSide2Colum.Width = new GridLength(0, GridUnitType.Pixel); RightSide2Colum.Width = new GridLength(229, GridUnitType.Pixel); ChartSpanOneYearRadioButton.Visibility = Visibility.Visible; ChartSpanOneWeekRadioButton.Visibility = Visibility.Visible; ChartSpanThreeHourRadioButton.Visibility = Visibility.Visible; }
private void ResizeToDefault() { // ボトムを BottomContents.Visibility = Visibility.Visible; // ボトムのコラムスパンを1に指定 BottomContents.SetValue(Grid.ColumnSpanProperty, 3); // スプリッタを Split.Visibility = Visibility.Visible; // スプリッタのコラムスパンを1に指定 Split.SetValue(Grid.ColumnSpanProperty, 3); Transaction.Visibility = Visibility.Visible; Transaction.SetValue(Grid.ColumnProperty, 3); Transaction.SetValue(Grid.RowProperty, 0); // メインスクロールVのコラムスパンを3に指定 MainScroller.SetValue(Grid.ColumnSpanProperty, 3); //MainScroller.SetValue(Grid.ColumnProperty, 2); // メインスクロールVのRowスパンを1に指定 MainScroller.SetValue(Grid.RowSpanProperty, 1); // メインコンテンツグリッドのコラムスパンを1に指定 MainContentsGrid.SetValue(Grid.ColumnSpanProperty, 1); // メインコンテンツグリッドの高さを指定。 //MainContentsGrid.Height = 420; // メイン1コラムのコラムスパンを3に指定 Main1Grid.SetValue(Grid.ColumnSpanProperty, 3); // メイン2コラムのコラムスパンを1に指定 Main2Grid.SetValue(Grid.ColumnSpanProperty, 1); Main2Grid.SetValue(Grid.RowProperty, 0); Main2Grid.SetValue(Grid.ColumnProperty, 0); // メイン3コラムのコラムスパンを1に指定 Main3Grid.SetValue(Grid.ColumnSpanProperty, 1); // メイン3コラムのRowを0に指定 Main3Grid.SetValue(Grid.RowProperty, 0); // メイン3コラムを1に指定 Main3Grid.SetValue(Grid.ColumnProperty, 1); Middle.SetValue(Grid.ColumnSpanProperty, 2); Depth.Visibility = Visibility.Collapsed; // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。 MainContentsGrid.Height = 420;//1036; // メイン1の高さを指定 *重要 Main1Grid.Height = 420; Main2Grid.Height = 420; Main3Grid.Height = 420; // 中央のサイズ //Middle.Width = 487; Middle.Width = this.ActualWidth - 665; //645 Middle.Height = 416; Middle.Margin = new Thickness(3, 1, 0, 3); //Main3Grid.Width = 504; Main3Grid.Width = this.ActualWidth - 648; //628 var test = this.ActualWidth - 412; //412 Main2Colum.Width = new GridLength(test, GridUnitType.Pixel); Main3Colum.Width = new GridLength(0, GridUnitType.Pixel); BottomContents.Margin = new Thickness(3, 0, 24, 0); Transaction.Height = 416; Transaction.Width = 213; Transaction.Margin = new Thickness(3, 1, 3, 3); RightSide1Colum.Width = new GridLength(0, GridUnitType.Pixel); RightSide2Colum.Width = new GridLength(0, GridUnitType.Pixel); ChartSpanOneYearRadioButton.Visibility = Visibility.Visible; ChartSpanOneWeekRadioButton.Visibility = Visibility.Visible; ChartSpanThreeHourRadioButton.Visibility = Visibility.Visible; }
private void ResizeToXXXSmall() { // ボトムを消す BottomContents.Visibility = Visibility.Collapsed; // ボトムのコラムスパンを1に指定 BottomContents.SetValue(Grid.ColumnSpanProperty, 1); // スプリッタを消す Split.Visibility = Visibility.Collapsed; // スプリッタのコラムスパンを1に指定 Split.SetValue(Grid.ColumnSpanProperty, 1); // 歩み値を消す Transaction.Visibility = Visibility.Visible; Transaction.SetValue(Grid.ColumnProperty, 0); Transaction.SetValue(Grid.RowProperty, 1); // メインスクロールVのコラムスパンを1に指定 MainScroller.SetValue(Grid.ColumnSpanProperty, 1); //MainScroller.SetValue(Grid.ColumnProperty, 0); // メインスクロールVのRowスパンを3に指定 MainScroller.SetValue(Grid.RowSpanProperty, 3); // メインコンテンツグリッドのコラムスパンを1に指定 MainContentsGrid.SetValue(Grid.ColumnSpanProperty, 1); // メイン1コラムのコラムスパンを1に指定 Main1Grid.SetValue(Grid.ColumnSpanProperty, 1); // メイン2コラムのコラムスパンを1に指定 Main2Grid.SetValue(Grid.ColumnSpanProperty, 1); Main2Grid.SetValue(Grid.RowProperty, 0); Main2Grid.SetValue(Grid.ColumnProperty, 0); // メイン3コラムのコラムスパンを1に指定 Main3Grid.SetValue(Grid.ColumnSpanProperty, 1); // メイン3コラムのRowを1に指定 Main3Grid.SetValue(Grid.RowProperty, 1); // メイン3コラムを1に指定 Main3Grid.SetValue(Grid.ColumnProperty, 0); Middle.SetValue(Grid.ColumnSpanProperty, 1); Depth.Visibility = Visibility.Collapsed; // メインコンテンツグリッドの高さ指定。*スクロールが出るかでないかここのサイズ。 MainContentsGrid.Height = 1260;//1554;//1036; // メイン1の高さを指定 *重要 Main1Grid.Height = 840;//1036; Main2Grid.Height = 420; Main3Grid.Height = 420; Middle.Width = 380; Middle.Margin = new Thickness(3, 0, 3, 0); Main2Colum.Width = new GridLength(0, GridUnitType.Pixel); Main3Colum.Width = new GridLength(0, GridUnitType.Pixel); Transaction.Width = 380; Transaction.Margin = new Thickness(3, 0, 10, 0); BottomContents.Margin = new Thickness(3, 0, 0, 0); ChartSpanOneYearRadioButton.Visibility = Visibility.Collapsed; ChartSpanOneWeekRadioButton.Visibility = Visibility.Collapsed; ChartSpanThreeHourRadioButton.Visibility = Visibility.Collapsed; }