공개: alpha.4 기준선 갱신
This commit is contained in:
parent
debf62f76e
commit
b63832706b
37 changed files with 1839 additions and 822 deletions
|
|
@ -3,95 +3,98 @@
|
|||
xmlns:vm="using:PhysOn.Desktop.ViewModels"
|
||||
x:Class="PhysOn.Desktop.Views.ConversationWindow"
|
||||
x:DataType="vm:ConversationWindowViewModel"
|
||||
Width="460"
|
||||
Height="760"
|
||||
MinWidth="360"
|
||||
Width="404"
|
||||
Height="748"
|
||||
MinWidth="340"
|
||||
MinHeight="520"
|
||||
Background="#F6F7F8"
|
||||
Background="#F3F4F6"
|
||||
Title="{Binding ConversationTitle}">
|
||||
|
||||
<Window.Styles>
|
||||
<Style Selector="Border.surface">
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="CornerRadius" Value="2" />
|
||||
<Setter Property="Background" Value="#FFFFFF" />
|
||||
<Setter Property="BorderBrush" Value="#E6E8EB" />
|
||||
<Setter Property="BorderBrush" Value="#E5E7EB" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
</Style>
|
||||
<Style Selector="Border.soft">
|
||||
<Setter Property="CornerRadius" Value="8" />
|
||||
<Setter Property="Background" Value="#F7F8F9" />
|
||||
<Setter Property="BorderBrush" Value="#ECEEF1" />
|
||||
<Style Selector="Border.muted">
|
||||
<Setter Property="CornerRadius" Value="2" />
|
||||
<Setter Property="Background" Value="#F7F8FA" />
|
||||
<Setter Property="BorderBrush" Value="#E8EAEE" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
</Style>
|
||||
<Style Selector="Button.icon">
|
||||
<Setter Property="CornerRadius" Value="9" />
|
||||
<Setter Property="Padding" Value="9,7" />
|
||||
<Setter Property="Background" Value="#FFFFFF" />
|
||||
<Setter Property="BorderBrush" Value="#D9DDE2" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
</Style>
|
||||
<Style Selector="Button.primary">
|
||||
<Setter Property="CornerRadius" Value="9" />
|
||||
<Setter Property="Padding" Value="12,9" />
|
||||
<Setter Property="Background" Value="#111418" />
|
||||
<Setter Property="Foreground" Value="#FFFFFF" />
|
||||
</Style>
|
||||
<Style Selector="TextBlock.caption">
|
||||
<Setter Property="FontSize" Value="12" />
|
||||
<Setter Property="Foreground" Value="#6A7380" />
|
||||
</Style>
|
||||
<Style Selector="TextBlock.body">
|
||||
<Setter Property="FontSize" Value="13" />
|
||||
<Setter Property="Foreground" Value="#151A20" />
|
||||
</Style>
|
||||
<Style Selector="Border.bubble">
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="Padding" Value="8,7" />
|
||||
<Setter Property="Margin" Value="0,0,0,5" />
|
||||
<Setter Property="Background" Value="#F6F7F8" />
|
||||
<Setter Property="BorderBrush" Value="#EAEDF0" />
|
||||
<Setter Property="CornerRadius" Value="2" />
|
||||
<Setter Property="Padding" Value="9,7" />
|
||||
<Setter Property="Margin" Value="0,0,0,6" />
|
||||
<Setter Property="Background" Value="#F7F8FA" />
|
||||
<Setter Property="BorderBrush" Value="#E4E7EB" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
<Setter Property="HorizontalAlignment" Value="Left" />
|
||||
</Style>
|
||||
<Style Selector="Border.bubble.mine">
|
||||
<Setter Property="Background" Value="#ECEFF3" />
|
||||
<Setter Property="Background" Value="#EEF1F4" />
|
||||
<Setter Property="HorizontalAlignment" Value="Right" />
|
||||
</Style>
|
||||
<Style Selector="Button.icon">
|
||||
<Setter Property="CornerRadius" Value="2" />
|
||||
<Setter Property="Padding" Value="8,6" />
|
||||
<Setter Property="Background" Value="#F7F8FA" />
|
||||
<Setter Property="BorderBrush" Value="#D9DDE2" />
|
||||
<Setter Property="BorderThickness" Value="1" />
|
||||
</Style>
|
||||
<Style Selector="Button.primary">
|
||||
<Setter Property="CornerRadius" Value="2" />
|
||||
<Setter Property="Padding" Value="11,8" />
|
||||
<Setter Property="Background" Value="#111418" />
|
||||
<Setter Property="Foreground" Value="#FFFFFF" />
|
||||
</Style>
|
||||
<Style Selector="TextBlock.caption">
|
||||
<Setter Property="FontSize" Value="11.5" />
|
||||
<Setter Property="Foreground" Value="#69727D" />
|
||||
</Style>
|
||||
<Style Selector="TextBlock.body">
|
||||
<Setter Property="FontSize" Value="13" />
|
||||
<Setter Property="Foreground" Value="#111418" />
|
||||
</Style>
|
||||
</Window.Styles>
|
||||
|
||||
<Grid Margin="16" RowDefinitions="Auto,Auto,*,Auto" RowSpacing="10">
|
||||
<Border Classes="surface" Padding="12">
|
||||
<Grid ColumnDefinitions="42,*,Auto" ColumnSpacing="12">
|
||||
<Border Width="42" Height="42" Classes="soft">
|
||||
<Grid Margin="10" RowDefinitions="Auto,Auto,*,Auto" RowSpacing="8">
|
||||
<Border Classes="surface" Padding="10">
|
||||
<Grid ColumnDefinitions="40,*,Auto,Auto" ColumnSpacing="10">
|
||||
<Border Width="40" Height="40" Classes="muted">
|
||||
<TextBlock HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Text="{Binding ConversationGlyph}"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="#151A20" />
|
||||
Foreground="#111418" />
|
||||
</Border>
|
||||
|
||||
<StackPanel Grid.Column="1" Spacing="2">
|
||||
<TextBlock Text="{Binding ConversationTitle}"
|
||||
FontSize="15"
|
||||
FontSize="14.5"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="#151A20"
|
||||
Foreground="#111418"
|
||||
TextTrimming="CharacterEllipsis" />
|
||||
<TextBlock Text="{Binding ConversationSubtitle}"
|
||||
Classes="caption"
|
||||
TextTrimming="CharacterEllipsis" />
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="8">
|
||||
<Border Classes="soft" Padding="8,5">
|
||||
<TextBlock Text="{Binding StatusText}" Classes="caption" />
|
||||
</Border>
|
||||
<Button Classes="icon"
|
||||
Command="{Binding ReloadCommand}"
|
||||
Content="↻" />
|
||||
</StackPanel>
|
||||
<Border Grid.Column="2" Classes="muted" Padding="8,4">
|
||||
<TextBlock Text="{Binding StatusText}" Classes="caption" />
|
||||
</Border>
|
||||
|
||||
<Button Grid.Column="3"
|
||||
Classes="icon"
|
||||
Command="{Binding ReloadCommand}"
|
||||
Content="↻" />
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="1"
|
||||
Classes="surface"
|
||||
Padding="10"
|
||||
Padding="9"
|
||||
IsVisible="{Binding HasErrorText}">
|
||||
<TextBlock Text="{Binding ErrorText}"
|
||||
Foreground="#C62828"
|
||||
|
|
@ -99,8 +102,8 @@
|
|||
TextWrapping="Wrap" />
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="2" Classes="surface" Padding="12">
|
||||
<ScrollViewer Name="MessagesScrollViewer">
|
||||
<Border Grid.Row="2" Classes="surface" Padding="8">
|
||||
<ScrollViewer Name="MessagesScrollViewer" MaxWidth="360" HorizontalAlignment="Center">
|
||||
<ItemsControl ItemsSource="{Binding Messages}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate x:DataType="vm:MessageRowViewModel">
|
||||
|
|
@ -123,17 +126,18 @@
|
|||
</ScrollViewer>
|
||||
</Border>
|
||||
|
||||
<Border Grid.Row="3" Classes="surface" Padding="10">
|
||||
<Border Grid.Row="3" Classes="muted" Padding="8" MaxWidth="360" HorizontalAlignment="Center">
|
||||
<Grid ColumnDefinitions="*,Auto" ColumnSpacing="10">
|
||||
<TextBox Name="ComposerTextBox"
|
||||
PlaceholderText="메시지"
|
||||
AcceptsReturn="True"
|
||||
TextWrapping="Wrap"
|
||||
MinHeight="46"
|
||||
MinHeight="44"
|
||||
Text="{Binding ComposerText}"
|
||||
KeyDown="ComposerTextBox_OnKeyDown" />
|
||||
<Button Grid.Column="1"
|
||||
Classes="primary"
|
||||
MinWidth="72"
|
||||
Command="{Binding SendMessageCommand}"
|
||||
Content="보내기" />
|
||||
</Grid>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -66,6 +66,14 @@ public partial class MainWindow : Window
|
|||
}
|
||||
}
|
||||
|
||||
private void ConversationPaneHost_OnSizeChanged(object? sender, SizeChangedEventArgs e)
|
||||
{
|
||||
if (DataContext is MainWindowViewModel viewModel && sender is Control control && control.IsVisible)
|
||||
{
|
||||
viewModel.UpdateConversationPaneWidth(control.Bounds.Width);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnClosed(EventArgs e)
|
||||
{
|
||||
if (_boundViewModel is not null)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue