我是一名 WPF 程序员新手。我的问题如下。
我有一个 WPF 应用程序,在主屏幕上,当我单击最大化按钮时,它不会最大化屏幕,而是将其重新定位到左上列。如果我通过单击和拖动来增加/减小屏幕尺寸,则最大化按钮可以正常工作。窗口属性设置如下:
<Window x:Class="MyApp.Home"
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"
mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Uid="Window_Main"
x:Name="HomeWindow"
WindowStyle="None"
AllowsTransparency="True"
WindowStartupLocation="CenterScreen"
Margin="0"
BorderBrush="Transparent"
BorderThickness="0"
Title="Home"
MinWidth="1000" MinHeight="800"
ResizeMode="CanResizeWithGrip"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
SizeToContent="WidthAndHeight"
Visibility="Visible"
d:DesignHeight="1080" d:DesignWidth="1200">
Run Code Online (Sandbox Code Playgroud)
按钮的 XAML 是:
<Button x:Uid="btnRestore" x:Name="btnRestore" Height="20" Width="20" Style="{DynamicResource Control_WindowControlBoxStyle}" Margin="5,0,0,0" ToolTip="Toggle Restore" Click="btnRestore_Click" />
Run Code Online (Sandbox Code Playgroud)
btnRestore_Click 的代码很简单:
private void btnRestore_Click(object sender, RoutedEventArgs e)
{
WindowState = WindowState.Maximized;
}
Run Code Online (Sandbox Code Playgroud)
我确信我一定犯了一些愚蠢的错误,但无法弄清楚那是什么。看似简单,但却让我感到困惑。任何帮助,将不胜感激。
故事的开始在这里。
我有一个组件,我希望它清理计时器(托管资源,对吗?):
public class MyPictureBox : PictureBox, IDisposable
{
private Timer _timer1 = new Timer();
private Timer _timer2 = new Timer();
public MyPictureBox(): base()
{
_timer1.Interval = 100;
_timer1.Start();
_timer2.Interval = 250;
_timer2.Start();
}
// ... all sort of code
new void Dispose()
{
base.Dispose();
_timer1.Dispose();
_timer2.Dispose();
}
void IDisposable.Dispose()
{
_timer1.Dispose();
_timer2.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我尝试再实现一个 (oO) IdDisposable(尽管 PictureBox->Control->Component->IDisposable)。但是.. 他们都没有被调用。
使用设计器将控件放在表单上。但它没有出现在表单中Components,这应该是处理表单时不调用它的原因:
Form1 form = new Form1();
form.Dispose(); // MyPictureBox.Dispose() are not called
Run Code Online (Sandbox Code Playgroud)
我的问题是我应该如何组织我的控制计时器的处置以获得我需要的东西 …
我目前正在 python 中开发一个 VOIP 工具作为客户端服务器。我的问题是,即使没有声音,我目前也按如下方式发送 Pyaudio 输入流(好吧,当没有人说话或没有噪音时,也会发送数据):
CHUNK = 1024
p = pyaudio.PyAudio()
stream = p.open(format = pyaudio.paInt16,
channels = 1,
rate = 44100,
input = True,
frames_per_buffer = CHUNK)
while 1:
self.conn.sendVoice(stream.read(CHUNK))
Run Code Online (Sandbox Code Playgroud)
我想检查音量以获得这样的结果:
data = stream.read(CHUNK)
if data.volume > 20%:
self.conn.sendVoice(data)
Run Code Online (Sandbox Code Playgroud)
这样我就可以避免发送无用的数据和备用连接/提高性能。(另外,我正在寻找某种压缩,但我想我将不得不在另一个主题中询问它)。
我确实有两个图层组,用户可以在图层控制面板中切换。到目前为止,这工作正常。
如何找出当前选择的叠加层(0 == a 或 1 == b)?我调用每两分钟绘制一个图层组的函数 (window.setTimeout("myFunction()", 120 * 1000);),并希望确保仅“重绘”选定的图层组。
这是我将两个叠加层的控件添加到地图的方式:
var a = new L.LayerGroup();
var b = new L.LayerGroup();
var overlays = {
"Option A": a,
"Option B": b
};
L.control.layers(overlays).addTo(map);
Run Code Online (Sandbox Code Playgroud) 我有一个用户表单,我在其中使用了一个图像字段。我根据两个标准在此字段中显示图片。当我想输入两个新条件时,我不知道如何在用户表单中清除此图像。
我已经阅读了很多关于如何自定义视图颜色的帖子,但没有关于在 iOS 11.x 或之前版本中检索标准控件(如导航栏、状态栏和标签栏)的系统颜色的内容。UIColor 类有 3 种系统颜色,但它们非常无用。例如,调用 UINavigationBar.appearance() 没有什么帮助,因为它可能会返回默认浅色方案的“清晰”颜色,以防应用程序 plist 中没有定义任何内容。那么为什么 Apple 不提供一种方法来像其他人那样以编程方式获取系统颜色(对于 Windows 和 Android)?有人知道在哪里可以找到它们吗?提前发送。
我正在尝试创建一个可聚焦的图像,以便显示移动或调整拇指大小。我知道图像标记不是控件,因此它不可聚焦,这在此图像文档中进行了解释。但是我需要做一些事件来让图像知道是否正在聚焦以改变那些控制拇指的可见性。有人知道如何解决这个问题吗?我在 Canvas 中的控制如下。
<Canvas x:Name="test">
<Grid x:Name="grdTextbox" Canvas.Left="300" Canvas.Top="300" Height="200" Width="200" ManipulationMode="None">
<Thumb x:Name="ThumbMove" Background="Transparent" Height="Auto" Width="Auto" DragDelta="ThumbMove_DragDelta" PointerEntered="ThumbMove_PointerEntered" PointerExited="ThumbMove_PointerExited" Margin="5" Canvas.ZIndex="1" />
<Thumb x:Name="ThumbBottomRight" Background="White" BorderBrush="Black" Height="20" Width="20" HorizontalAlignment="Right" DragDelta="ThumbBottomRight_DragDelta" VerticalAlignment="Bottom" PointerEntered="ThumbSizeNorthwestSoutheast_PointerEntered" PointerExited="ThumbMove_PointerExited"/>
<Thumb x:Name="ThumbBottomLeft" Background="White" BorderBrush="Black" Height="20" Width="20" HorizontalAlignment="Left" DragDelta="ThumbBottomLeft_DragDelta" VerticalAlignment="Bottom" PointerEntered="ThumbSizeNortheastSouthwest_PointerEntered" PointerExited="ThumbMove_PointerExited"/>
<Thumb x:Name="ThumbTopRight" Background="White" BorderBrush="Black" Height="20" Width="20" HorizontalAlignment="Right" DragDelta="ThumbTopRight_DragDelta" VerticalAlignment="Top" PointerExited="ThumbMove_PointerExited" PointerEntered="ThumbSizeNortheastSouthwest_PointerEntered"/>
<Thumb x:Name="ThumbTopLeft" Background="White" BorderBrush="Black" Height="20" Width="20" HorizontalAlignment="Left" DragDelta="ThumbTopLeft_DragDelta" VerticalAlignment="Top" PointerExited="ThumbMove_PointerExited" PointerEntered="ThumbSizeNorthwestSoutheast_PointerEntered"/>
<Image Height="Auto" Width="Auto" Source="Assets/Square150x150Logo.png" Margin="2" Stretch="Uniform" PointerEntered="ThumbMove_PointerEntered" PointerExited="ThumbMove_PointerExited" Tapped="Image_Tapped"/>
</Grid>
</Canvas>
Run Code Online (Sandbox Code Playgroud) 我正在为我的大学创建一个简单的项目,在我的 UI 上的某个时候,我想要一个文本字段,在该字段中将检查用户输入是否为数字。如果是,它会将值写入文本字段。否则它会保持原样。我必须指出,我不希望使用微调也是我不希望创建自定义的控制作为一个罐子,然后将它导入。现在,我使用了NumericTextField我从这里获取的类,但是当我尝试使用它时,我从 intelliJ idea(console) 和场景构建器中得到这个错误:
java.lang.ClassNotFoundException
我在 stackoverflow 中阅读了几个讨论特定问题的主题,但这些主题都没有给我解决问题的方法。
这是我如何使用NumericTextFieldfxml 文件中的类:
<NumericTextField fx:id="simpleTxt" layoutX="53.0" layoutY="87.0" prefHeight="39.0" prefWidth="205.0" />
Run Code Online (Sandbox Code Playgroud)
我将自定义控件导入到 fxml 文件中,如下所示:
<?import com.MyProjectName.NumericTextField?>
Run Code Online (Sandbox Code Playgroud)
NumericTextField类的代码:
package com.MyProjectName;
import javafx.scene.control.TextField;
public class NumericTextField extends TextField
{
@Override
public void replaceText(int start, int end, String text)
{
if (validate(text))
{
super.replaceText(start, end, text);
}
}
@Override
public void replaceSelection(String text)
{
if (validate(text))
{
super.replaceSelection(text);
}
}
private boolean validate(String text) …Run Code Online (Sandbox Code Playgroud) 我想让文件下载控件在顶部显示带有最新(最新)创建日期的附件。默认是显示最新的最后一个。
<xp:fileDownload rows="30" id="FD"
displayLastModified="false" value="#{document1.files}"
style="width:98%" hideWhen="false"
displayType="true" allowDelete="false" displayCreated="true">
</xp:fileDownload>
Run Code Online (Sandbox Code Playgroud) 我正在运行 mitmproxy 控制台。
我可以使用向上/向下箭头键导航 Flow 视图,并从 Flow 视图中使用Enter键或单击鼠标来请求 Flow Details 视图。
我可以使用以下方式导航流详细信息选项卡响应/请求/详细信息: Tab、箭头键、h 和 l 键、Ctrl-I。
我可以使用 m" 键更改 Flow Detail 模式。
我不明白“z”和“v”键菜单的作用。与“b”键相同。
我可以使用“q”键返回 Flow 视图。
是否有任何关于控件和导航的文档?
navigation controls keyboard-shortcuts key-bindings mitmproxy
controls ×10
image ×2
c# ×1
canvas ×1
colors ×1
dispose ×1
download ×1
excel ×1
file ×1
ios ×1
java ×1
javafx ×1
javascript ×1
key-bindings ×1
leaflet ×1
mitmproxy ×1
navigation ×1
overlays ×1
pyaudio ×1
swift ×1
userform ×1
uwp ×1
vba ×1
volume ×1
winforms ×1
wpf ×1
wpf-controls ×1
xaml ×1
xpages ×1