52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using System;
|
|
using System.Windows;
|
|
using HandyControl.Data;
|
|
|
|
namespace HandyControl.Controls
|
|
{
|
|
public class ChatBubble : SelectableItem
|
|
{
|
|
public static readonly DependencyProperty RoleProperty = DependencyProperty.Register(
|
|
"Role", typeof(ChatRoleType), typeof(ChatBubble), new PropertyMetadata(default(ChatRoleType)));
|
|
|
|
public ChatRoleType Role
|
|
{
|
|
get => (ChatRoleType)GetValue(RoleProperty);
|
|
set => SetValue(RoleProperty, value);
|
|
}
|
|
|
|
public static readonly DependencyProperty TypeProperty = DependencyProperty.Register(
|
|
"Type", typeof(ChatMessageType), typeof(ChatBubble), new PropertyMetadata(default(ChatMessageType)));
|
|
|
|
public ChatMessageType Type
|
|
{
|
|
get => (ChatMessageType)GetValue(TypeProperty);
|
|
set => SetValue(TypeProperty, value);
|
|
}
|
|
|
|
public static readonly DependencyProperty IsReadProperty = DependencyProperty.Register(
|
|
"IsRead", typeof(bool), typeof(ChatBubble), new PropertyMetadata(ValueBoxes.FalseBox));
|
|
|
|
public bool IsRead
|
|
{
|
|
get => (bool)GetValue(IsReadProperty);
|
|
set => SetValue(IsReadProperty, value);
|
|
}
|
|
|
|
public static void SetMaxWidth(DependencyObject element, double value)
|
|
=> element.SetValue(MaxWidthProperty, value);
|
|
|
|
public static double GetMaxWidth(DependencyObject element)
|
|
=> (double)element.GetValue(MaxWidthProperty);
|
|
|
|
public Action<object> ReadAction { get; set; }
|
|
|
|
protected override void OnSelected(RoutedEventArgs e)
|
|
{
|
|
base.OnSelected(e);
|
|
|
|
IsRead = true;
|
|
ReadAction?.Invoke(Content);
|
|
}
|
|
}
|
|
} |