我想将文本块文本绑定到静态类的属性.只要静态类的属性值发生更改,它就应该反映到另一个窗口或自定义控件上的文本块.
我有一个包含按钮的WPF C#应用程序.
按钮单击的代码写在单独的文本文件中,该文件将放在应用程序运行时目录中.
我想在单击按钮时执行放置在文本文件中的代码.
知道怎么做吗?
我有一个300000的数组,我希望它将它分成两个相等的部分.有没有什么方法可以用来实现这个目标?
它会比for-loop操作更快还是会对性能没有影响?
当试图转换byte[]
的Camera.onPreviewFrame
到Bitamp
用BitmapFactory.decodeByteArray
给我一个错误SkImageDecoder::Factory returned null
以下是我的代码:
public void onPreviewFrame(byte[] data, Camera camera) {
Bitmap bmp=BitmapFactory.decodeByteArray(data, 0, data.length);
}
Run Code Online (Sandbox Code Playgroud) 我有一个WriteableBitmap从文件加载位图图像(主要是bmp).我使用的位图文件有不同的像素格式,如Indexed8,Bgra32等.问题是我的代码仅适用于bgra32像素格式.所以我需要帮助将位图转换为c#wpf中的Bgra32像素格式.
谢谢
我正在开发一个Android应用程序,应该能够将视频流式传输到我的网络上的本地服务器,而无需将其存储在SD卡上.
为此,我在C#中使用了一个简单的套接字应用程序来监听特定的IP:PORT
在Android部分,我设置了setOutputFile()
这个IP:PORT使用套接字.
此应用程序在Android手机上完美启动,但它不显示预览,当我开始录制时,它会毫无例外地退出.它也不会向网络发送任何数据流.
当我设置setOutPutFile()
为SD卡时,它可以正常工作并录制视频.
对于服务器部分,当我从任何其他应用程序(从PC)向同一IP:PORT发送数据时,它会接收数据.
简而言之,我想使用socket进行流媒体建立PC和Android之间的通信通道.
这是我的Android代码:
Socket soc=new Socket("192.168.1.3",8210);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(soc);
...
...
// other Recorder setup steps
...
...
Recorder.setOutputFile(pfd.getFileDescriptor()); // working fine for sdcard
Recorder.setPreviewDisplay(holder.getSurface());
Recorder.prepare();
Run Code Online (Sandbox Code Playgroud)
这是我在C#中的服务器应用程序并在PC上运行:
socketForServer = new TcpClient("192.168.1.3", 8210);
NetworkStream networkStream = socketForServer.GetStream();
byte[] rData = new byte[1024];
networkStream.Read(rData, 0, 1024);
...
...
// process rData
...
...
Run Code Online (Sandbox Code Playgroud)
我无法理解这里发生的问题.我正朝着正确的方向前进吗?
我正在开发一个应用程序,它在运行时从XML文件添加对象(基本上是Windows窗体控件).应用程序需要访问已添加的对象.
对象将添加到面板或组框中.对于面板和组框,我有Panel.Controls ["object_name"]来访问对象.这仅在将对象直接添加到同一面板上时才有用.在我的情况下,主面板[pnlMain,我只能访问此面板]可能包含另一个面板,此面板[pnlChild]再次包含一个groupbox [gbPnlChild],groupbox包含一个按钮[button1,我想访问此按钮] .我有以下方法:
Panel childPanel = pnlMain.Controls["pnlChild"];
GroupBox childGP = childPanel.Controls["gbPnlChild"];
Button buttonToAccess = childGP["button1"];
Run Code Online (Sandbox Code Playgroud)
当父母知道时,上述方法很有用.在我的场景中,只知道要访问的对象的名称[button1]而不是其父对象.那么如何通过名称访问此对象,与其父对象无关?
是否有像GetObject("objName")或类似的方法?
我试图将a转换byte[]
为Bitmap
c#.以下是代码:
MemoryStream ms = new MemoryStream(b);
Bitmap bmp = new Bitmap(ms);
Run Code Online (Sandbox Code Playgroud)
它Parameter is not valid
在创建时显示错误Bitmap
.
byte[] b
来自网络流.
但是当我将这个byte []写入文件时,在任何图像查看器中打开此文件都可以完美地运行.以下是将byte []写入文件的代码:
var fs = new BinaryWriter(new FileStream("tmp.bmp", FileMode.Create, FileAccess.Write));
fs.Write(b);
fs.Close();
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么?
编辑
这是我的完整代码导致问题
Socket s = listener.AcceptSocket();
byte[] b = new byte[imgLen];
s.Receive(b);
MemoryStream ms = new MemoryStream(b);
// now here I am using ms.Seek(0, SeekOrigin.Begin); that fixed my problem.
Bitmap bmp = new Bitmap(ms);
pictureBox1.Image = bmp;
s.Close();
Run Code Online (Sandbox Code Playgroud)
我在Form_Load …
我试图在WPF C#中构建一个简单的图形应用程序.目的是绘制10000*10000个矩形,每个矩形的大小为4个像素.
我修改了画布的OnRender方法来绘制矩形.对较少数量的矩形(比如每个4个像素的50*50或100*100矩形)执行绘图,但是当我增加no时它会减慢.矩形
以下是我的代码:
protected override void OnRender(DrawingContext dc)
{
base.OnRender(dc);
FillCells(dc);
if (_ShowGrids)
{
DrawGrid(dc); // draw grid lines
}
}
void FillCells(DrawingContext dc)
{
int cellSize=4;
for (int i = 0; i < MaxRow; i++)
{
for (int j = 0; j < MaxColumn; j++)
{
dc.DrawRectangle(GetRectBrush(i,j), GetRectPen(i,j), new Rect(j * cellSize , i * cellSize , cellSize - 1, cellSize - 1));
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码需要一分多钟才能绘制1000*1000个矩形.
有没有什么方法可以让这个过程更快?还有什么我可以用来代替这个吗?
谢谢.
我正在写一个简单的Android应用程序,它有一个edittext和一个按钮.单击按钮应显示一个警告对话框,其中包含在edittext中输入的文本.为此,我有以下代码:
String txt;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b=(Button)findViewById(R.id.ok);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Text in edit box: " + txt)
.setCancelable(false)
.setTitle("Info")
.setPositiveButton("Done", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {}
});
final AlertDialog alert = builder.create();
// set click listener on the flag to show the dialog box
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText et=(EditText)findViewById(R.id.entry);
txt=et.getText().toString();
alert.show();
}
});
}
Run Code Online (Sandbox Code Playgroud)
上面的代码运行正常,但警告对话框显示 …