WPF学习笔记

WPF学习笔记


复选框

<h3>CheckBox属性用法</h3> <ol> <li><strong>x:Name</strong>: <ul> <li>为 <code>CheckBox</code> 指定一个名称,以便在代码中引用。 <pre><code class="language-csharp">&amp;lt;CheckBox x:Name=&amp;quot;exampleCheckBox&amp;quot;/&amp;gt;</code></pre></li> </ul></li> <li><strong>Content</strong>: <ul> <li>设置 <code>CheckBox</code> 的显示文本或内容。 <pre><code class="language-csharp">&amp;lt;CheckBox Content=&amp;quot;Accept Terms and Conditions&amp;quot;/&amp;gt;</code></pre></li> </ul></li> <li><strong>IsChecked</strong>: <ul> <li>指定 <code>CheckBox</code> 是否被选中。可以是 <code>True</code>、<code>False</code> 或 <code>null</code>(表示不确定状态)。 <pre><code class="language-csharp">&amp;lt;CheckBox IsChecked=&amp;quot;True&amp;quot;/&amp;gt;</code></pre></li> </ul></li> <li><strong>IsEnabled</strong>: <ul> <li>控制 <code>CheckBox</code> 是否可以被用户编辑。设为 <code>False</code> 时,<code>CheckBox</code> 将变为只读。 <pre><code class="language-csharp">&amp;lt;CheckBox IsEnabled=&amp;quot;False&amp;quot;/&amp;gt;</code></pre></li> </ul></li> <li><strong>HorizontalContentAlignment</strong> 和 <strong>VerticalContentAlignment</strong>: <ul> <li>设置 <code>CheckBox</code> 内容的水平和垂直对齐方式。 <pre><code class="language-csharp">&amp;lt;CheckBox HorizontalContentAlignment=&amp;quot;Center&amp;quot; VerticalContentAlignment=&amp;quot;Center&amp;quot;/&amp;gt;</code></pre></li> </ul></li> <li><strong>ToolTip</strong>: <ul> <li>为 <code>CheckBox</code> 添加一个工具提示,当用户将鼠标悬停在控件上时显示。 <pre><code class="language-csharp">&amp;lt;CheckBox ToolTip=&amp;quot;Check this box to accept the terms&amp;quot;/&amp;gt;</code></pre></li> </ul></li> <li><strong>模版用例</strong> <pre><code class="language-csharp">&amp;lt;Window.Resources&amp;gt; &amp;lt;Style x:Key=&amp;quot;CheckBoxStyle1&amp;quot; TargetType=&amp;quot;{x:Type CheckBox}&amp;quot;&amp;gt; &amp;lt;Setter Property=&amp;quot;BorderThickness&amp;quot; Value=&amp;quot;1&amp;quot;/&amp;gt; &amp;lt;Setter Property=&amp;quot;Template&amp;quot;&amp;gt; &amp;lt;Setter.Value&amp;gt; &amp;lt;ControlTemplate TargetType=&amp;quot;{x:Type CheckBox}&amp;quot;&amp;gt; &amp;lt;Grid x:Name=&amp;quot;templateRoot&amp;quot; Background=&amp;quot;Transparent&amp;quot; SnapsToDevicePixels=&amp;quot;True&amp;quot;&amp;gt; &amp;lt;Grid.ColumnDefinitions&amp;gt; &amp;lt;ColumnDefinition Width=&amp;quot;Auto&amp;quot;/&amp;gt; &amp;lt;ColumnDefinition Width=&amp;quot;*&amp;quot;/&amp;gt; &amp;lt;/Grid.ColumnDefinitions&amp;gt; &amp;lt;Border Grid.Column=&amp;quot;1&amp;quot; x:Name=&amp;quot;checkBoxBorder&amp;quot; Width=&amp;quot;50&amp;quot; Height=&amp;quot;25&amp;quot; CornerRadius=&amp;quot;13&amp;quot; BorderThickness=&amp;quot;2&amp;quot; Background=&amp;quot;BlueViolet&amp;quot;&amp;gt; &amp;lt;Grid x:Name=&amp;quot;markGrid&amp;quot;&amp;gt; &amp;lt;Ellipse Width=&amp;quot;20&amp;quot; Height=&amp;quot;20&amp;quot; Fill=&amp;quot;Aquamarine&amp;quot; HorizontalAlignment=&amp;quot;Left&amp;quot; x:Name=&amp;quot;ccc&amp;quot;&amp;gt;&amp;lt;/Ellipse&amp;gt; &amp;lt;/Grid&amp;gt; &amp;lt;/Border&amp;gt; &amp;lt;ContentPresenter Grid.Column=&amp;quot;0&amp;quot; x:Name=&amp;quot;contentPresenter&amp;quot; HorizontalAlignment=&amp;quot;Right&amp;quot; VerticalAlignment=&amp;quot;Center&amp;quot; Margin=&amp;quot;3&amp;quot;/&amp;gt; &amp;lt;/Grid&amp;gt; &amp;lt;ControlTemplate.Triggers&amp;gt; &amp;lt;Trigger Property=&amp;quot;IsChecked&amp;quot; Value=&amp;quot;true&amp;quot;&amp;gt; &amp;lt;Setter Property=&amp;quot;HorizontalAlignment&amp;quot; Value=&amp;quot;Right&amp;quot; TargetName=&amp;quot;ccc&amp;quot;&amp;gt;&amp;lt;/Setter&amp;gt; &amp;lt;/Trigger&amp;gt; &amp;lt;/ControlTemplate.Triggers&amp;gt; &amp;lt;/ControlTemplate&amp;gt; &amp;lt;/Setter.Value&amp;gt; &amp;lt;/Setter&amp;gt; &amp;lt;/Style&amp;gt; &amp;lt;/Window.Resources&amp;gt; &amp;lt;CheckBox Style=&amp;quot;{DynamicResource CheckBoxStyle1}&amp;quot; Width=&amp;quot;90&amp;quot; FontSize=&amp;quot;15&amp;quot; IsChecked=&amp;quot;{Binding IsSwitchOn, Mode=TwoWay}&amp;quot;&amp;gt;开关&amp;lt;/CheckBox&amp;gt;</code></pre> <h3>MVVMViewModel</h3></li> </ol> <pre><code class="language-csharp">using System.ComponentModel; using System.Runtime.CompilerServices; namespace YourNamespace { public class MainViewModel : INotifyPropertyChanged { private bool _isSwitchOn; public bool IsSwitchOn { get { return _isSwitchOn; } set { _isSwitchOn = value; OnPropertyChanged(); } } public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } }</code></pre>

页面列表

ITEM_HTML