假設我有n個矩形。 我希望他們表現得如此,當我點擊任何矩形時,它應該被填充爲白色,其他所有應該填充黑色。使用表達式混合使矩形像RadioButton一樣工作
我知道我可以創建一個風格。但是,當創建樣式時,我可以告訴用黑色填充矩形的觸發器,但我怎麼能說用白色填充所有剩餘的矩形。
任何人都可以建議我嗎? 我只想要一個小提示。
假設我有n個矩形。 我希望他們表現得如此,當我點擊任何矩形時,它應該被填充爲白色,其他所有應該填充黑色。使用表達式混合使矩形像RadioButton一樣工作
我知道我可以創建一個風格。但是,當創建樣式時,我可以告訴用黑色填充矩形的觸發器,但我怎麼能說用白色填充所有剩餘的矩形。
任何人都可以建議我嗎? 我只想要一個小提示。
不要使矩形像RadioButtons
那樣工作,使RadioButtons
看起來像矩形。
我建議使用RadioButton
而不是改變模板,使其看起來像矩形。然後您可以根據RadioButton.IsChecked
屬性觸發更改背景。這樣RadioButton
將負責勾選/取消勾選操作,並在同一組中的其他RadioButtons
中觸發背景更改。
<Style TargetType="{x:Type RadioButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Border BorderBrush="Black" BorderThickness="1" Background="Black" x:Name="PART_Border">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="PART_Border" Property="Background" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
,並使用你的RadioButton
這樣的:
<RadioButton>
<RadioButton.Content>
<!-- content to be displayer inside border -->
</RadioButton.Content>
</RadioButton>
你自己回答了這個問題。拿兩個單選按鈕並嘗試編輯模板。基本上,當你仔細看看模板時,你會發現一個橢圓點,其點擊鼠標的可見性將被切斷。
而不是橢圓你可以有一個長方形/邊框有一定的厚度,並設置其鼠標點擊時的背景顏色
謝謝。這是你的好建議。現在我在裏面有一個矩形和圖像。它們都被綁定到ViewBox中。現在我有5個這樣的視框。我試圖將它們轉換爲RadioButtons。我在這裏成功了。但是現在問題出現了。我希望所有五個RadioButton都有不同的圖像。 – Khushi
爲什麼你需要使用矩形?爲什麼不把'RadioButton'模板化爲矩形? – dkozl