1 DynamicResource的使用方法
可以在字典文件 的抬头区写入数:
csharp
<SolidColorBrush x:Key="PrimaryBackgroundColor" Color="#FFABAdB3"/>
<SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/>
<SolidColorBrush x:Key="TextSecundaryColor" Color="#FF569DE5"/>
设定好颜色:
则引用时直接使用:
csharp
BorderBrush="{DynamicResource PrimaryBackgroundColor}"
另一种方式 引用 fontFamily 的方式与此相似
csharp
<FontFamily x:Key="HgFont">../../CommonInMy/Fonts/#iconfont</FontFamily>
当然这个只是写在
节点下,如果想整个项目都用这个链接方法就是直接写在 app.xaml 下;
引用方式 FontFamily="{ DynamicResource HgFont}"
2 自定义控件(数据增减下拉操作)
2.1 控件本身类
csharp
public class UInputNumberTextBox : Control
{
static UInputNumberTextBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(UInputNumberTextBox), new FrameworkPropertyMetadata(typeof(UInputNumberTextBox)));
}
private Button btnSubtract;
private Button btnAdd;
public int Text
{
get { return (int)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(int), typeof(UInputNumberTextBox), new PropertyMetadata(0));
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
btnSubtract = GetTemplateChild("btnSubtract") as Button;
if (btnSubtract != null)
{
btnSubtract.Click += BtnSubtract_Click;
}
btnAdd = GetTemplateChild("btnAdd") as Button;
if (btnAdd != null)
{
btnAdd.Click += BtnAdd_Click;
}
}
private void BtnAdd_Click(object sender, RoutedEventArgs e)
{
UInputNumberTextBox inputText = this as UInputNumberTextBox;
inputText.Text += 1;
}
private void BtnSubtract_Click(object sender, RoutedEventArgs e)
{
UInputNumberTextBox inputText = this as UInputNumberTextBox;
inputText.Text -= 1;
}
}
2.2 样式操作:
csharp
<SolidColorBrush x:Key="PrimaryBackgroundColor" Color="#FFCFD6E5"/><!--定义颜色-->
<SolidColorBrush x:Key="TextBox.MouseOver.Border" Color="#FF7EB4EA"/>
<SolidColorBrush x:Key="TextSecundaryColor" Color="#FF4E85BD"/>
<!--<FontFamily x:Key="TextSecundaryColor" fa="#FF569DE5"/>-->
<Style x:Key="ControNumberTB" TargetType="ControlSet:UInputNumberTextBox">
<Setter Property="Background" Value="{DynamicResource PrimaryBackgroundColor}" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ControlSet:UInputNumberTextBox">
<Border
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
BorderBrush="{DynamicResource PrimaryBackgroundColor}"
BorderThickness="1">
<StackPanel Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Orientation="Horizontal" >
<Grid Width="{TemplateBinding Width}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button
x:Name="btnSubtract"
Grid.Column="0"
Width="{TemplateBinding Height}"
Height="{TemplateBinding Height}"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Background="{DynamicResource PrimaryBackgroundColor}"
BorderThickness="0,0,0,0"
Content=""
Cursor="Hand"
FocusVisualStyle="{x:Null}"
FontFamily="{DynamicResource HgFont}"
Foreground="{DynamicResource TextSecundaryColor}" /><!--减号-->
<TextBox
Grid.Column="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Background="Transparent"
BorderThickness="0"
FocusVisualStyle="{x:Null}"
FontSize="{TemplateBinding FontSize}"
Foreground="{TemplateBinding Foreground}"
Text="{Binding Text, RelativeSource={RelativeSource AncestorType=ControlSet:UInputNumberTextBox}, Mode=TwoWay}" />
<Button
x:Name="btnAdd"
Grid.Column="2"
Width="{TemplateBinding Height}"
Height="{TemplateBinding Height}"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Background="{DynamicResource PrimaryBackgroundColor}"
BorderThickness="0,0,0,0"
Content=""
Cursor="Hand"
FocusVisualStyle="{x:Null}"
FontFamily="{ DynamicResource HgFont}"
Foreground="{DynamicResource TextSecundaryColor}" /> <!--加号-->
</Grid>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
3.引用在界面XAML中。
引用地址:
xmlns:自定义 = "clr-namespace:地址
csharp
xmlns:ControlSet="clr-namespace:海王牌位系统.CommonInMy.Controls"
引用
csharp
<ResourceDictionary Source="../../CommonInMy/Styles/UInputNumberTextBoxStyle.xaml"/>
界面定义,本关键字 加名称
csharp
<ControlSet:UInputNumberTextBox Grid.Row="6" Grid.Column="1" Width="200" Height="30" Margin="0,0,0,10" FontSize="16" Style="{DynamicResource ControNumberTB }" Text="1" />
本单元参考了