public UIElement CreateRetweetPanel(TwitterStatus ost, TwitterStatus st)
{
StackPanel s = new StackPanel();
s.Margin = new Thickness(2);
StackPanel sus = new StackPanel();
sus.Orientation = Orientation.Horizontal;
TextBlock te = new TextBlock();
TextBlock us = new TextBlock();
TextBlock ti = new TextBlock();
TextBlock inf = new TextBlock();
inf.FontSize = 12;
inf.Text = String.Format(MessageInfoRetweetFormat, st.User.Name);
inf.Foreground = Brushes.DarkGreen;
Image im = new Image();
BitmapImage bi = new BitmapImage(new Uri(ost.User.ProfileImageUrlHttps));
us.Text = String.Format(MessageInfoUserFormat, ost.User.Name, ost.User.ScreenName);
us.FontSize = 18;
us.VerticalAlignment = VerticalAlignment.Center;
us.Foreground = Brushes.DarkGreen;
im.Source = bi;
im.Width = 36;
im.Height = 36;
im.MouseDown += im_MouseDown;
im.Tag = s;
sus.Children.Add(im);
sus.Children.Add(us);
te.Text = ost.GetUrlConvertedStatusText();
te.TextWrapping = TextWrapping.WrapWithOverflow;
te.Foreground = Brushes.DarkGreen;
ti.FontSize = 10;
ti.Foreground = Brushes.DarkGreen;
var dt = ost.CreatedDate;
//日本時間 UTC +09:00
dt = dt.AddHours(9);
ti.Text = dt.ToString();
var urls = new StackPanel();
foreach (var u in ost.Entities.Urls)
{
Hyperlink h = new Hyperlink();
h.NavigateUri = new Uri(u.ExpandedValue);
h.RequestNavigate += h_RequestNavigate;
h.Inlines.Add(u.DisplayUrl);
urls.Children.Add(new Label { Content = h });
}
foreach (var u in st.Entities.Media)
{
Hyperlink h = new Hyperlink();
h.NavigateUri = new Uri(u.ExpandedUrl);
h.RequestNavigate += h_RequestNavigate;
h.Inlines.Add(u.DisplayUrl);
var ll = new Label { Content = h };
UIElement i;
if (TryGetMediaControl(u.MediaUrlHttps, out i))
{
Expander e = new Expander();
e.HorizontalAlignment = HorizontalAlignment.Left;
e.Header = ll;
e.Content = i;
urls.Children.Add(e);
}
else
{
urls.Children.Add(ll);
}
}
var hashs = new StackPanel();
foreach (var u in ost.Entities.HashTags)
{
var t = new TextBlock();
t.Text = "#" + u.Text;
t.Foreground = Brushes.Red;
t.MouseLeftButtonDown += t_MouseLeftButtonDown;
hashs.Children.Add(t);
}
var fbt = GetTemplate("FlatButton");
var ftbt = GetTemplate("FlatToggleButton");
StackPanel bts = new StackPanel();
bts.Orientation = Orientation.Horizontal;
ToggleButton rt = new ToggleButton(), fav = new ToggleButton();
rt.Content = MessageInfoRetweetButtonText;
rt.Click += rt_Click;
rt.Tag = new RetweetData { Original = ost };
rt.Template = ftbt;
rt.Background = Brushes.LightGray;
fav.Content = MessageInfoFavoriteButtonText;
fav.Click += fav_Click;
fav.Tag = s;
fav.Template = ftbt;
fav.Background = Brushes.LightGray;
Button descb = new Button();
descb.Content = MessageInfoDescriptionButtonText;
descb.Tag = st;
descb.Click += descb_Click;
descb.Template = fbt;
descb.Background = Brushes.LightGray;
bts.Children.Add(rt);
bts.Children.Add(fav);
bts.Children.Add(descb);
s.Children.Add(inf);
s.Children.Add(sus);
s.Children.Add(te);
s.Children.Add(urls);
s.Children.Add(hashs);
s.Children.Add(ti);
s.Children.Add(bts);
s.Tag = ost;
s.Background = Brushes.Honeydew;
s.HorizontalAlignment = HorizontalAlignment.Stretch;
return s;
}