我正在使用MaterialDesign Toolkit和Dragablz在WPF中工作.我在尝试设计样式时遇到了问题TabablzControl.我已经有了windows默认TabControl和TabItem标题的样式,如图所示:http:
//i.imgur.com/2anl5rl.png
但是当我将默认的tabControl更改为TabablzControl时,它变为:http://i.imgur.com/bhaaMVy.png
这是window.resources:
<Style x:Key="mdTabControl" TargetType="TabControl">
<Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesignBody}"/>
<Setter Property="Background" Value="{DynamicResource MaterialDesignPaper}"></Setter>
</Style>
<Style x:Key="mdTabHeader" TargetType="{x:Type TabItem}">
<Setter Property="Background" Value="{DynamicResource MaterialDesignPaper}"></Setter>
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border Name="Border" Margin="1,0,1,0" CornerRadius="3 3 0 0">
<ContentPresenter x:Name="ContentSite" VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header" Margin="10,2,10,2"
RecognizesAccessKey="True">
</ContentPresenter>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Panel.ZIndex" Value="100" />
<Setter TargetName="Border" Property="Background" Value="{StaticResource SecondaryAccentBrush}" />
<Setter Property="Foreground" Value="{StaticResource …Run Code Online (Sandbox Code Playgroud) 我有一个有状态的组件(使用 React 钩子)和一个无状态的布局组件。状态的行为出乎意料,因为在有状态组件中定义的 2 个函数中,一个获取状态的当前值,另一个获取状态的默认值。
反应版本:16.12.0
片段(代码沙盒上的完整版本https://codesandbox.io/s/sweet-smoke-tpjge):
import React, { useState } from "react";
import MapLayout from "./MapLayout";
function Map(props) {
const [editMode, setEditMode] = useState(false);
const items = [
{ id: 0, name: "item 0", pos: { x: 0, y: 0 } },
{ id: 1, name: "item 1", pos: { x: 0, y: 100 } }
];
function onItemClick(item) {
if (!editMode) return; // ! Expected to change with state
console.log("On Edit mode"); // ! Never …Run Code Online (Sandbox Code Playgroud)