@@ -373,6 +373,128 @@ public IList<ChatBubbleTool>? MyBubbleToolItems
373373 set => SetValue ( MyBubbleToolItemsProperty , value ) ;
374374 }
375375
376+ // Chat background
377+ public static readonly BindableProperty ChatBackgroundColorProperty = BindableProperty . Create (
378+ nameof ( ChatBackgroundColor ) ,
379+ typeof ( Color ) ,
380+ typeof ( ChatView ) ,
381+ null ,
382+ propertyChanged : ( b , _ , n ) => ( ( ChatView ) b ) . OnChatBackgroundColorChanged ( n as Color ) ) ;
383+
384+ public Color ? ChatBackgroundColor
385+ {
386+ get => ( Color ? ) GetValue ( ChatBackgroundColorProperty ) ;
387+ set => SetValue ( ChatBackgroundColorProperty , value ) ;
388+ }
389+
390+ // Send button styling
391+ public static readonly BindableProperty SendButtonBackgroundColorProperty = BindableProperty . Create (
392+ nameof ( SendButtonBackgroundColor ) ,
393+ typeof ( Color ) ,
394+ typeof ( ChatView ) ,
395+ Color . FromArgb ( "#007AFF" ) ,
396+ propertyChanged : ( b , _ , n ) => ( ( ChatView ) b ) . inputBar . SendButtonBackgroundColor = ( Color ) n ) ;
397+
398+ public Color SendButtonBackgroundColor
399+ {
400+ get => ( Color ) GetValue ( SendButtonBackgroundColorProperty ) ;
401+ set => SetValue ( SendButtonBackgroundColorProperty , value ) ;
402+ }
403+
404+ public static readonly BindableProperty SendButtonTextColorProperty = BindableProperty . Create (
405+ nameof ( SendButtonTextColor ) ,
406+ typeof ( Color ) ,
407+ typeof ( ChatView ) ,
408+ Colors . White ,
409+ propertyChanged : ( b , _ , n ) => ( ( ChatView ) b ) . inputBar . SendButtonTextColor = ( Color ) n ) ;
410+
411+ public Color SendButtonTextColor
412+ {
413+ get => ( Color ) GetValue ( SendButtonTextColorProperty ) ;
414+ set => SetValue ( SendButtonTextColorProperty , value ) ;
415+ }
416+
417+ // Input bar styling
418+ public static readonly BindableProperty InputBarBackgroundColorProperty = BindableProperty . Create (
419+ nameof ( InputBarBackgroundColor ) ,
420+ typeof ( Color ) ,
421+ typeof ( ChatView ) ,
422+ Color . FromArgb ( "#F5F5F5" ) ,
423+ propertyChanged : ( b , _ , n ) => ( ( ChatView ) b ) . inputBar . BarBackgroundColor = ( Color ) n ) ;
424+
425+ public Color InputBarBackgroundColor
426+ {
427+ get => ( Color ) GetValue ( InputBarBackgroundColorProperty ) ;
428+ set => SetValue ( InputBarBackgroundColorProperty , value ) ;
429+ }
430+
431+ public static readonly BindableProperty InputBarBorderColorProperty = BindableProperty . Create (
432+ nameof ( InputBarBorderColor ) ,
433+ typeof ( Color ) ,
434+ typeof ( ChatView ) ,
435+ Color . FromArgb ( "#E0E0E0" ) ,
436+ propertyChanged : ( b , _ , n ) => ( ( ChatView ) b ) . inputBar . BarBorderColor = ( Color ) n ) ;
437+
438+ public Color InputBarBorderColor
439+ {
440+ get => ( Color ) GetValue ( InputBarBorderColorProperty ) ;
441+ set => SetValue ( InputBarBorderColorProperty , value ) ;
442+ }
443+
444+ // Font properties
445+ public static readonly BindableProperty BubbleFontSizeProperty = BindableProperty . Create (
446+ nameof ( BubbleFontSize ) ,
447+ typeof ( double ) ,
448+ typeof ( ChatView ) ,
449+ 15.0 ,
450+ propertyChanged : ( b , _ , _ ) => ( ( ChatView ) b ) . RefreshBubbles ( ) ) ;
451+
452+ public double BubbleFontSize
453+ {
454+ get => ( double ) GetValue ( BubbleFontSizeProperty ) ;
455+ set => SetValue ( BubbleFontSizeProperty , value ) ;
456+ }
457+
458+ public static readonly BindableProperty BubbleFontFamilyProperty = BindableProperty . Create (
459+ nameof ( BubbleFontFamily ) ,
460+ typeof ( string ) ,
461+ typeof ( ChatView ) ,
462+ null ,
463+ propertyChanged : ( b , _ , _ ) => ( ( ChatView ) b ) . RefreshBubbles ( ) ) ;
464+
465+ public string ? BubbleFontFamily
466+ {
467+ get => ( string ? ) GetValue ( BubbleFontFamilyProperty ) ;
468+ set => SetValue ( BubbleFontFamilyProperty , value ) ;
469+ }
470+
471+ public static readonly BindableProperty TimestampFontSizeProperty = BindableProperty . Create (
472+ nameof ( TimestampFontSize ) ,
473+ typeof ( double ) ,
474+ typeof ( ChatView ) ,
475+ 11.0 ,
476+ propertyChanged : ( b , _ , _ ) => ( ( ChatView ) b ) . RefreshBubbles ( ) ) ;
477+
478+ public double TimestampFontSize
479+ {
480+ get => ( double ) GetValue ( TimestampFontSizeProperty ) ;
481+ set => SetValue ( TimestampFontSizeProperty , value ) ;
482+ }
483+
484+ // Bubble corner radius
485+ public static readonly BindableProperty BubbleCornerRadiusProperty = BindableProperty . Create (
486+ nameof ( BubbleCornerRadius ) ,
487+ typeof ( double ) ,
488+ typeof ( ChatView ) ,
489+ 18.0 ,
490+ propertyChanged : ( b , _ , _ ) => ( ( ChatView ) b ) . RefreshBubbles ( ) ) ;
491+
492+ public double BubbleCornerRadius
493+ {
494+ get => ( double ) GetValue ( BubbleCornerRadiusProperty ) ;
495+ set => SetValue ( BubbleCornerRadiusProperty , value ) ;
496+ }
497+
376498 // Haptic
377499 public static readonly BindableProperty UseFeedbackProperty = BindableProperty . Create (
378500 nameof ( UseFeedback ) ,
0 commit comments