Closing a UserControl on Button Click in Silverlight
In this article, we are going to see how to close a user control by clicking a button inside it.
We had a scenario when using a telerik radgridview, we wanted to customize a filter for a date field. So we created a user control having 2 date pickers to select items within the range. But we are not able to close it. So I tried many things to close the user control, but we were not able to. Finally we came up with a solution after Googling for many hours which I am going to explain here. This is not only limited with customizing filter which I did it for my work, anyone can use this to close a UserControl in Silverlight by a button click.
In my user control, I added a button as below in XAML.
<StackPanel Grid.Row="0" Grid.Column="3">
<Button Style="{StaticResource CloseButton}" Width="13" Height="13" Margin="30,0,0,0" Padding="0,0,0,0"
FontSize="9" Content="X" Click="Button_Click" x:Name="btnClose" VerticalContentAlignment="Top" />
</StackPanel>
In the button click event, I have the following code which will close the user control:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.IsActive = false;
var popup = btnClose.ParentOfType<System.Windows.Controls.Primitives.Popup>();
if (popup != null)
{
popup.IsOpen = false;
}
}