I am attempting to use the desktop alert but instead of reacting to a click on the content I want a button. How do I route this?
View Model Method; show the alert (works)
private void ShowAlert()
{
if (IsShowAlert &&
AlertTitle.IsNotNullOrEmpty() &&
AlertText.IsNotNullOrEmpty())
{
// Create a new BitmapImage
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri("pack://application:,,,/Images/GSI_Cloud_256.ico");
bitmap.EndInit();
var image = new System.Windows.Controls.Image() { Source = bitmap };
desktopAlertManager.ShowAlert(new DesktopAlertParameters
{
Header = AlertTitle,
Content = AlertText,
Icon = image,
IconColumnWidth = 48,
IconMargin = new Thickness(10, 0, 20, 0),
ShowDuration = AlertShowDuration,
Command = new DelegateCommand(OnAlertCommandExecuted)
});
}
}
Respond to the Button Press:
private void OnAlertCommandExecuted(object param) { IsShowTrayApp = true; }
Alert Style with a Button:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerikNavigation="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation">
<SolidColorBrush x:Key="DesktopAlert_BorderBrush" Color="#FF848484"/>
<LinearGradientBrush x:Key="DesktopAlert_Background" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Cornsilk" Offset="0"/>
<GradientStop Color="#FFD4D4D4" Offset="1"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="DesktopAlert_InnerBorderBrush" Color="#FFFFFFFF"/>
<CornerRadius x:Key="DesktopAlert_CornerRadius">1</CornerRadius>
<SolidColorBrush x:Key="DesktopAlert_ButtonIconStroke" Color="#FFFFFFFF"/>
<LinearGradientBrush x:Key="DesktopAlert_ButtonIconFill" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF282828"/>
<GradientStop Color="#FF7C7C7C" Offset="1"/>
</LinearGradientBrush>
<DataTemplate x:Key="RadDesktopAlertHeaderTemplate">
<Grid
x:Name="Header"
Grid.Column="1"
Grid.Row="0"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
Background="{StaticResource ContainerHeaderBackgroundBrush}">
<StackPanel
HorizontalAlignment="Left"
Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image
RenderOptions.BitmapScalingMode="Fant"
Margin="5 0 5 0"
Source="/Images/GSI_Cloud_256.ico"/>
<Label
Grid.Column="1"
Foreground="White"
FontWeight="SemiBold"
FontSize="14"
VerticalContentAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
</StackPanel>
<StackPanel
HorizontalAlignment="Right"
Orientation="Horizontal">
<Button Height="30" Width="30"
x:Name="DesktopAlert_CloseButton"
Content="🗙"
Background="Transparent"
BorderThickness="0"
Foreground="White"
FontSize="20"
Margin="0 -3 0 0"
FontWeight="Bold"
Command="{x:Static telerikNavigation:DesktopAlertCommands.Close}" />
</StackPanel>
<ContentPresenter
Content="{Binding}"
TextBlock.FontWeight="Bold"
Margin="0 0 0 0"
MinHeight="{Binding ActualHeight, ElementName=DesktopAlert_CloseButton}" Grid.RowSpan="2" VerticalAlignment="Top">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="Foreground" Value="White" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Margin" Value="30 0 0 0" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
</DataTemplate>
<ControlTemplate x:Key="RadDesktopAlertTemplate" TargetType="{x:Type telerikNavigation:RadDesktopAlert}">
<Grid x:Name="LayoutRoot">
<Border Background="White"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{StaticResource DesktopAlert_CornerRadius}">
<Border BorderBrush="{StaticResource DesktopAlert_InnerBorderBrush}" BorderThickness="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="26" />
</Grid.RowDefinitions>
<ContentPresenter
ContentTemplate="{TemplateBinding HeaderTemplate}"
Grid.Column="1"
Content="{TemplateBinding Header}"
Grid.Row="0" VerticalAlignment="Top"/>
<ContentPresenter
x:Name="Content"
Cursor="Hand"
Grid.Column="1"
HorizontalAlignment="Center"
Margin="0 7 0 0" Grid.Row="1" VerticalAlignment="Top">
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="Wrap"/>
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="FontSize" Value="14" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="126" />
</Grid.ColumnDefinitions>
<Button
Style="{StaticResource ButtonStyle}"
Grid.Column="2"
Content="Open"
Command="{Binding OnAlertCommandExecuted}"/>
</Grid>
</Grid>
</Border>
</Border>
</Grid>
</ControlTemplate>
<Style TargetType="{x:Type telerikNavigation:RadDesktopAlert}">
<Setter Property="Padding" Value="10 8"/>
<Setter Property="Opacity" Value="0.9"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="14"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource DesktopAlert_BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Width" Value="360"/>
<Setter Property="Height" Value="130"/>
<Setter Property="Template" Value="{StaticResource RadDesktopAlertTemplate}"/>
<Setter Property="HeaderTemplate" Value="{StaticResource RadDesktopAlertHeaderTemplate}"/>
</Style>
</ResourceDictionary>
This is a picture of my Alert