我已經爲WPF應用程序編寫了一些UserControls。 其中一個是實現RadioButton的UserControl。 這是用戶控件的XAML:爲什麼自定義的用戶控件與RadioButton不同步?
<UserControl x:Class="UsercontrolExample.UserControls.ControlRadioButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:UsercontrolExample.UserControls"
mc:Ignorable="d"
d:DesignHeight="25"
d:DesignWidth="150">
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border x:Name="border"
Style="{StaticResource borderbasestyle}">
<RadioButton x:Name="radiobutton"
Content="RadioButton"
Margin="2"/>
</Border>
</Grid>
</UserControl>
在CS文件我已經設定了一個名爲「ControlIsChecked」爲單選按鈕的器isChecked財產的調整,在我將它設置爲False constructor屬性,它應該是RadioButtons標準。
/// <summary>
/// Gets or sets if the checkbox is checked.
/// </summary>
public bool? ControlIsChecked
{
get { return radiobutton.IsChecked; }
set { radiobutton.IsChecked = value; }
}
在一個WPF窗口用於測試新的用戶控件,我已經把我的兩個ControlRadioButtons對畫布,它位於一個分組框。
<GroupBox x:Name="groupbox1" Header="Selection" Canvas.Left="24" Canvas.Top="152" Height="98" Width="157">
<Canvas x:Name="canvasgroupbox1">
<Controls:ControlRadioButton x:Name="radiobutton1"
ControlContent="RadioButton-1"
ControlFontSize="12"
ControlFontIsBold="True"
ControlFontStyleIsItalic="True"
ControlIsChecked="True"
Canvas.Left="24" Canvas.Top="10"/>
<Controls:ControlRadioButton x:Name="radiobutton2"
ControlContent="RadioButton-2"
Canvas.Left="24" Canvas.Top="45"/>
</Canvas>
</GroupBox>
不幸的是我的RadioButton在運行時不同步。 正常情況下,當第一個RadioButton被選中時,我檢查第二個,第一個應該是未選中的。 但在我的情況都被檢查。
我該如何同步RadioButtons?
提前致謝!
您可以從RadioButton('ControlRadioButton:RadioButton')派生ControlRadioButton來添加新屬性並覆蓋ControlRadioButton teplate(複製RadioButton模板並編輯它)*不使用內部RadioButton – ASh
但是在那種情況下,我將不再具有Border,不是嗎? –
默認沒有。修復很簡單:在一個新模板中圍繞現有內容創建一個邊界 – ASh